add fp16 sub_graph preProcess

pull/8066/head
hangangqiang 5 years ago
parent e675e78b2c
commit 261023d980

@ -106,7 +106,7 @@ class LogWriter {
} // namespace mindspore
#ifdef DEBUG
#ifdef Debug
#include <cassert>
#define MS_ASSERT(f) assert(f)
#else

@ -43,6 +43,5 @@ class Executor {
int TransformTensorLayout(Tensor *tensor, schema::Format dst_format, Allocator *allocator = nullptr);
};
} // namespace mindspore::lite
#endif

@ -162,7 +162,6 @@ void LiteSession::InitGraphInputMSTensors() {
void LiteSession::InitGraphOutputTensors(const lite::Model *model) {
MS_ASSERT(model != nullptr);
MS_ASSERT(this->outputs_.empty());
MS_ASSERT(meta_graph != nullptr);
auto graph_out_size = model->sub_graphs_.front()->output_indices_.size();
for (size_t i = 0; i < graph_out_size; ++i) {
auto out_tensor_idx = model->sub_graphs_.front()->output_indices_[i];
@ -181,7 +180,7 @@ void LiteSession::InitGraphInputMap(const lite::Model *model) {
for (auto in_node_index : graph_input_node_indexes) {
auto in_node = model->all_nodes_[in_node_index];
MS_ASSERT(in_node != nullptr);
MS_ASSERT(this->input_map_.find(in_node->name()->str()) == this->input_map_.end());
MS_ASSERT(this->input_map_.find(in_node->name_) == this->input_map_.end());
auto in_size = in_node->input_indices_.size();
for (size_t i = 0; i < in_size; ++i) {
auto in_tensor_index = size_t(in_node->input_indices_[i]);
@ -215,7 +214,6 @@ void LiteSession::InitGraphOutputNodeMap(const lite::Model *model) {
for (auto out_node_index : graph_output_node_indexes) {
auto out_node = model->all_nodes_[out_node_index];
MS_ASSERT(out_node != nullptr);
MS_ASSERT(this->output_map_.find(out_node->name()->str()) == this->output_map_.end());
auto out_size = out_node->output_indices_.size();
for (size_t i = 0; i < out_size; ++i) {
auto out_tensor_index = out_node->output_indices_[i];

@ -95,7 +95,6 @@ int Cast::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> output
}
output->SetFormat(input->GetFormat());
MS_ASSERT(cast_prim != nullptr);
output->set_data_type(static_cast<TypeId>(GetDstT()));
if (!GetInferFlag()) {
return RET_OK;

@ -104,7 +104,6 @@ int Concat::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> outp
return RET_OK;
}
MS_ASSERT(concat_prim != nullptr);
auto input0_shape = inputs_.at(0)->shape();
auto axis = GetAxis() < 0 ? GetAxis() + input0_shape.size() : GetAxis();
if (axis < 0 || axis >= input0_shape.size()) {

@ -197,7 +197,8 @@ int Conv2DGradFilter::InferShape(std::vector<Tensor *> inputs, std::vector<Tenso
auto *in0 = inputs.at(0);
auto *in = inputs.at(2);
MS_ASSERT(out != nullptr);
MS_ASSERT(in0 != nullptr);
MS_ASSERT(in != nullptr);
std::vector<int> output_shape;
int *out_shape = reinterpret_cast<int *>(in->MutableData());

@ -200,7 +200,8 @@ int Conv2DGradInput::InferShape(std::vector<Tensor *> inputs, std::vector<Tensor
auto *in0 = inputs.at(0);
auto *in = inputs.at(2);
MS_ASSERT(out != nullptr);
MS_ASSERT(in0 != nullptr);
MS_ASSERT(in != nullptr);
std::vector<int> output_shape;
int *out_shape = reinterpret_cast<int *>(in->MutableData());

@ -169,8 +169,8 @@ int DetectionPostProcess::InferShape(std::vector<lite::Tensor *> inputs_, std::v
const auto input_anchors_shape = anchors->shape();
MS_ASSERT(input_scores_shape[2] >= GetNumClasses());
MS_ASSERT(input_scores_shape[2] - GetNumClasses() <= 1);
MS_ASSERT(input_box_shape[1] = input_scores_shape[1]);
MS_ASSERT(input_box_shape[1] = input_anchors_shape[0]);
MS_ASSERT(input_box_shape[1] == input_scores_shape[1]);
MS_ASSERT(input_box_shape[1] == input_anchors_shape[0]);
auto detected_boxes = outputs_.at(0);
MS_ASSERT(detected_boxes != nullptr);

@ -113,7 +113,6 @@ int Gather::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> outp
return RET_OK;
}
MS_ASSERT(gather_prim != nullptr);
int axis = GetAxis();
int batch_dims = GetBatchDims();
if (axis < 0) {

@ -149,7 +149,8 @@ int GroupConv2DGradInput::InferShape(std::vector<Tensor *> inputs, std::vector<T
auto *in0 = inputs.at(0);
auto *in = inputs.at(2);
MS_ASSERT(out != nullptr);
MS_ASSERT(in0 != nullptr);
MS_ASSERT(in != nullptr);
std::vector<int> output_shape;
int *out_shape = reinterpret_cast<int *>(in->MutableData());

@ -46,7 +46,6 @@ int HashtableLookup::InferShape(std::vector<Tensor *> inputs_, std::vector<Tenso
auto output = outputs_.at(0);
auto hits = outputs_.at(1);
MS_ASSERT(input != nullptr);
MS_ASSERT(keys != nullptr);
MS_ASSERT(values != nullptr);
MS_ASSERT(output != nullptr);
MS_ASSERT(hits != nullptr);

@ -65,7 +65,7 @@ int LshProjection::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor
if (inputs_.size() == kMultiNum) {
MS_ASSERT(inputs_.at(2)->shape().size() == 1);
MS_ASSERT(inputs_.at(2)->DimensionSize(0) == in_value->DimensionSize(0));
MS_ASSERT(inputs_.at(2)->DimensionSize(0) == inputs_.at(1)->DimensionSize(0));
}
auto out_tensor = outputs_.front();

@ -60,7 +60,7 @@ int Lstm::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> output
auto input = inputs_.front();
MS_ASSERT(input != nullptr);
auto weight_i = inputs_[1];
MS_ASSERT(input0 != nullptr);
MS_ASSERT(input != nullptr);
auto output = outputs_.front();
MS_ASSERT(output != nullptr);
for (int i = 0; i < kLstmOutputNum; i++) {

@ -186,7 +186,6 @@ int Pooling::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> out
int input_h = input->shape().at(1);
int input_w = input->shape().at(2);
MS_ASSERT(pooling_prim != nullptr);
auto window_h = GetWindowH();
auto window_w = GetWindowW();
if (GetGlobal()) {

@ -132,7 +132,7 @@ constexpr int kPriorBoxW = 1;
constexpr int kPriorBoxC = 2;
} // namespace
int PriorBox::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> outputs_) {
MS_ASSERT(param != nullptr);
MS_ASSERT(this->primitive_ != nullptr);
auto input = inputs_.at(0);
MS_ASSERT(input != nullptr);
auto output = outputs_.at(0);
@ -144,7 +144,6 @@ int PriorBox::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> ou
}
std::vector<float> different_aspect_ratios{1.0f};
auto aspect_ratios = GetAspectRatios();
MS_ASSERT(aspect_ratios != nullptr);
for (size_t i = 0; i < aspect_ratios.size(); i++) {
float ratio = aspect_ratios[i];
bool exist = std::any_of(different_aspect_ratios.begin(), different_aspect_ratios.end(),

@ -59,7 +59,7 @@ int QuantDTypeCast::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor
MS_ASSERT(input != nullptr);
auto output = outputs_.front();
MS_ASSERT(output != nullptr);
MS_ASSERT(input->data_type() == param->srcT);
MS_ASSERT(input->data_type() == this->GetSrcT());
output->set_data_type(static_cast<TypeId>(GetDstT()));
output->SetFormat(input->GetFormat());
if (!GetInferFlag()) {

@ -64,8 +64,6 @@ int Range::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> outpu
auto output = outputs_.front();
MS_ASSERT(output != nullptr);
MS_ASSERT(range_prim != nullptr);
output->set_data_type(input->data_type());
output->SetFormat(input->GetFormat());
if (!GetInferFlag()) {

@ -176,7 +176,6 @@ int Reshape::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> out
return RET_OK;
}
MS_ASSERT(reshape_prim != nullptr);
std::vector<int> out_shape;
if (inputs_.size() == kDoubleNum) {
auto shape_tensor = inputs_.at(1);

@ -54,7 +54,6 @@ Registry SparseToDenseRegistry(schema::PrimitiveType_SparseToDense, SparseToDens
int SparseToDense::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> outputs_) {
MS_ASSERT(this->primitive_ != nullptr);
MS_ASSERT(output_shape != nullptr);
auto output = outputs_.front();
if (output == nullptr) {
MS_LOG(ERROR) << "output null pointer dereferencing.";

@ -104,7 +104,6 @@ int Split::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> outpu
MS_ASSERT(this->primitive_ != nullptr);
auto input = inputs_.front();
MS_ASSERT(input != nullptr);
MS_ASSERT(spilt_prim != nullptr);
if (inputs_.size() != kSplitInputNum) {
MS_LOG(ERROR) << "inputs number is not equal to " << kSplitInputNum;
return RET_ERROR;

@ -138,7 +138,6 @@ int Tile::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> output
return RET_OK;
}
MS_ASSERT(tile_prim != nullptr);
std::vector<int> out_shape;
std::vector<int> multiples = GetMultiples();
const size_t in_dims = input->shape().size();

@ -71,7 +71,6 @@ int TopK::InferShape(std::vector<Tensor *> inputs_, std::vector<Tensor *> output
if (!GetInferFlag()) {
return RET_OK;
}
MS_ASSERT(topk_prim != nullptr);
auto out_shape = input->shape();
out_shape[out_shape.size() - 1] = GetK();
if (inputs_.size() == kDoubleNum && inputs_.at(1)->data_c() != nullptr) {

@ -82,7 +82,7 @@ int ConvolutionFP16CPUKernel::InitWeightBias() {
fp16_bias_data[i] = (float16_t)ori_bias[i];
}
} else {
MS_ASSERT(inputs_.size() == kInputSize1);
MS_ASSERT(in_tensors_.size() == kInputSize1);
}
return RET_OK;
}

@ -97,7 +97,7 @@ int ConvolutionWinogradFP16CPUKernel::InitWeightBias() {
fp16_bias_data[i] = (float16_t)ori_bias[i];
}
} else {
MS_ASSERT(inputs_.size() == kInputSize1);
MS_ASSERT(in_tensors_.size() == kInputSize1);
}
return RET_OK;
}

@ -346,7 +346,7 @@ int DeConvWinogradFp16CPUKernel::InitDataParam() {
fp16_bias_data[i] = (float16_t)src_bias[i];
}
} else {
MS_ASSERT(inputs_.size() == kInputSize1);
MS_ASSERT(in_tensors_.size() == kInputSize1);
}
return RET_OK;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save