| @@ -29,7 +29,7 @@ using domi::CAFFE; | |||
| namespace ge { | |||
| Status CaffeDataParser::GetOutputDesc(const string &name, const std::vector<int64_t> &input_dims, | |||
| const ge::OpDescPtr &op) { | |||
| const ge::OpDescPtr &op) const { | |||
| GE_CHECK_NOTNULL(op); | |||
| GELOGI("The input dim size is %zu in layer %s.", input_dims.size(), name.c_str()); | |||
| @@ -45,7 +45,7 @@ class PARSER_FUNC_VISIBILITY CaffeDataParser : public CaffeOpParser, public Data | |||
| * @return SUCCESS parse successfully | |||
| * @return FAILED parse failed | |||
| */ | |||
| Status GetOutputDesc(const std::string &name, const std::vector<int64_t> &input_dims, const ge::OpDescPtr &op); | |||
| Status GetOutputDesc(const std::string &name, const std::vector<int64_t> &input_dims, const ge::OpDescPtr &op) const; | |||
| // caffe data layer type could be type of `Input` or `DummyData` | |||
| Status ParseParamsForInput(const domi::caffe::LayerParameter *layer, ge::OpDescPtr &op); | |||
| @@ -512,7 +512,7 @@ Status CaffeModelParser::ReadModelWithoutWarning(const char *model_path, google: | |||
| return SUCCESS; | |||
| } | |||
| Status CaffeModelParser::ReadCaffeModelFromText(const char *model_path, google::protobuf::Message *message) { | |||
| Status CaffeModelParser::ReadCaffeModelFromText(const char *model_path, google::protobuf::Message *message) const { | |||
| GE_CHECK_NOTNULL(model_path); | |||
| GE_CHECK_NOTNULL(message); | |||
| GELOGI("Start to read model file: %s.", model_path); | |||
| @@ -586,7 +586,7 @@ Status CaffeModelParser::ParseLayerParameter(const google::protobuf::Descriptor | |||
| } | |||
| Status CaffeModelParser::CreateCustomOperator(string op_name, string op_type, const google::protobuf::Message *message, | |||
| int index, vector<ge::Operator> &operators) { | |||
| int index, vector<ge::Operator> &operators) const { | |||
| if (op_name.empty() || op_type.empty()) { | |||
| REPORT_INNER_ERROR("E19999", "[Check][Param]Name or type of layer is empty, name: %s, type: %s.", | |||
| op_name.c_str(), op_type.c_str()); | |||
| @@ -616,7 +616,7 @@ Status CaffeModelParser::CreateCustomOperator(string op_name, string op_type, co | |||
| return SUCCESS; | |||
| } | |||
| void CaffeModelParser::AddOutputInfoToContext(string layer_name, int32_t top_index) { | |||
| void CaffeModelParser::AddOutputInfoToContext(string layer_name, int32_t top_index) const { | |||
| auto iter_node_name = ge::GetParserContext().out_nodes_map.find(layer_name); | |||
| if (iter_node_name != ge::GetParserContext().out_nodes_map.end()) { | |||
| iter_node_name->second.emplace_back(top_index); | |||
| @@ -705,7 +705,7 @@ Status CaffeModelParser::AddBlobsToMap(const domi::caffe::LayerParameter &layer, | |||
| return SUCCESS; | |||
| } | |||
| bool CaffeModelParser::IsOpAttrEmpty(const ge::Operator &op, const std::string &type) { | |||
| bool CaffeModelParser::IsOpAttrEmpty(const ge::Operator &op, const std::string &type) const { | |||
| std::map<AscendString, AscendString> attrs; | |||
| (void)op.GetAllAttrNamesAndTypes(attrs); | |||
| @@ -899,7 +899,7 @@ Status CaffeModelParser::AddNode(const domi::caffe::LayerParameter &layer, ge::C | |||
| return SUCCESS; | |||
| } | |||
| Status CaffeModelParser::AddTensorDescToOpDesc(ge::OpDescPtr &op_desc, const domi::caffe::LayerParameter &layer) { | |||
| Status CaffeModelParser::AddTensorDescToOpDesc(ge::OpDescPtr &op_desc, const domi::caffe::LayerParameter &layer) const { | |||
| GE_CHECK_NOTNULL(op_desc); | |||
| // Data node input and output tensordesc added in parserparam | |||
| if (op_desc->GetType() == ge::parser::DATA) { | |||
| @@ -1069,7 +1069,7 @@ Status CaffeModelParser::AddEdges(ge::ComputeGraphPtr &graph) { | |||
| return SUCCESS; | |||
| } | |||
| bool CaffeModelParser::IsOutputTop(const string &op_name, const int32_t index) { | |||
| bool CaffeModelParser::IsOutputTop(const string &op_name, const int32_t index) const { | |||
| bool ret = false; | |||
| auto iter = ge::GetParserContext().out_nodes_map.find(op_name); | |||
| if (iter != ge::GetParserContext().out_nodes_map.end()) { | |||
| @@ -1169,7 +1169,7 @@ Status CaffeModelParser::AddOutputTop(const domi::caffe::NetParameter &proto_mes | |||
| return SUCCESS; | |||
| } | |||
| bool CaffeModelParser::CheckValidLayer(const domi::caffe::LayerParameter &layer) { | |||
| bool CaffeModelParser::CheckValidLayer(const domi::caffe::LayerParameter &layer) const { | |||
| if (layer.include_size() != 0) { | |||
| bool filter_flag = false; | |||
| for (int32_t j = 0; j < layer.include_size(); j++) { | |||
| @@ -1189,7 +1189,7 @@ bool CaffeModelParser::CheckValidLayer(const domi::caffe::LayerParameter &layer) | |||
| return true; | |||
| } | |||
| bool CaffeModelParser::IsInplaceTopBlob(const domi::caffe::LayerParameter &layer, const std::string &top_name) { | |||
| bool CaffeModelParser::IsInplaceTopBlob(const domi::caffe::LayerParameter &layer, const std::string &top_name) const { | |||
| for (auto &bottom_name : layer.bottom()) { | |||
| if (top_name == bottom_name) { | |||
| return true; | |||
| @@ -1199,7 +1199,7 @@ bool CaffeModelParser::IsInplaceTopBlob(const domi::caffe::LayerParameter &layer | |||
| } | |||
| std::string CaffeModelParser::RemapTopNameByLayer(const domi::caffe::LayerParameter &layer, const std::string &top_name, | |||
| int index) { | |||
| int index) const { | |||
| return (top_name + "_" + layer.name() + "_" + std::to_string(index)); | |||
| } | |||
| @@ -1294,7 +1294,7 @@ Status CaffeModelParser::ParseFromMemory(const char *data, uint32_t size, ge::Co | |||
| "[Check][Layer]layer phase is train, skip this layer, name:%s, type:%s.", | |||
| layer.name().c_str(), layer.type().c_str()); | |||
| CHECK_FALSE_EXEC(!((layer.type() == ge::parser::DATA_TYPE) && (input_data_flag == true)), has_error = true; | |||
| CHECK_FALSE_EXEC(!((layer.type() == ge::parser::DATA_TYPE) && input_data_flag), has_error = true; | |||
| REPORT_INNER_ERROR("E19999", "net %s has input and data layer simultaneously, check invalid." | |||
| "layer name:%s, layer type:%s", proto_message.name().c_str(), | |||
| layer.name().c_str(), layer.type().c_str()); | |||
| @@ -1516,7 +1516,7 @@ Status CaffeModelParser::Parse(const char *model_path, ge::ComputeGraphPtr &grap | |||
| "[Check][Layer]layer phase is train, skip this layer, name:%s, type:%s.", | |||
| layer.name().c_str(), layer.type().c_str()); | |||
| CHECK_FALSE_EXEC(!((layer.type() == ge::parser::DATA_TYPE) && (input_data_flag == true)), has_error = true; | |||
| CHECK_FALSE_EXEC(!((layer.type() == ge::parser::DATA_TYPE) && input_data_flag), has_error = true; | |||
| GELOGE(FAILED, "[Check][Layer]net %s has input and data layer simultaneously, check invalid." | |||
| "layer name:%s, layer type:%s", proto_message.name().c_str(), | |||
| layer.name().c_str(), layer.type().c_str())); | |||
| @@ -1591,7 +1591,7 @@ Status CaffeModelParser::Parse(const char *model_path, ge::ComputeGraphPtr &grap | |||
| return SUCCESS; | |||
| } | |||
| Status CaffeModelParser::FindShareParamLayers(const std::map<std::string, std::vector<std::string>> &layer_params_map) { | |||
| Status CaffeModelParser::FindShareParamLayers(const std::map<std::string, std::vector<std::string>> &layer_params_map) const { | |||
| for (auto p_iter = layer_params_map.begin(); p_iter != layer_params_map.end(); ++p_iter) { | |||
| for (auto p2_iter = p_iter; p2_iter != layer_params_map.end(); ++p2_iter) { | |||
| if (p_iter->first != p2_iter->first && p_iter->second == p2_iter->second) { | |||
| @@ -1625,7 +1625,7 @@ Status CaffeModelParser::ToJson(const char *model_file, const char *json_file) { | |||
| return ModelSaver::SaveJsonToFile(json_file, j); | |||
| } | |||
| Status CaffeModelParser::ReorderInput(domi::caffe::NetParameter &net) { | |||
| Status CaffeModelParser::ReorderInput(domi::caffe::NetParameter &net) const { | |||
| int layer_size = net.layer_size(); | |||
| for (int i = 0; i < layer_size; ++i) { | |||
| domi::caffe::LayerParameter *layer = net.mutable_layer(i); | |||
| @@ -2018,7 +2018,7 @@ Status CaffeWeightsParser::ConvertBlobsProto(const google::protobuf::Message *me | |||
| } | |||
| Status CaffeWeightsParser::ConvertBlobShapeProto(const google::protobuf::Message *message, | |||
| google::protobuf::Message *dest_message) { | |||
| google::protobuf::Message *dest_message) const { | |||
| const google::protobuf::Reflection *reflection = message->GetReflection(); | |||
| CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | |||
| vector<const google::protobuf::FieldDescriptor *> field_desc; | |||
| @@ -2040,7 +2040,7 @@ Status CaffeWeightsParser::ConvertBlobShapeProto(const google::protobuf::Message | |||
| } | |||
| Status CaffeWeightsParser::ConvertConvParamProto(const google::protobuf::Message *message, | |||
| google::protobuf::Message *dest_message) { | |||
| google::protobuf::Message *dest_message) const { | |||
| const google::protobuf::Reflection *reflection = message->GetReflection(); | |||
| CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | |||
| vector<const google::protobuf::FieldDescriptor *> field_desc; | |||
| @@ -2060,7 +2060,7 @@ Status CaffeWeightsParser::ConvertConvParamProto(const google::protobuf::Message | |||
| } | |||
| Status CaffeWeightsParser::ConvertInnerProdcutProto(const google::protobuf::Message *message, | |||
| google::protobuf::Message *dest_message) { | |||
| google::protobuf::Message *dest_message) const { | |||
| const google::protobuf::Reflection *reflection = message->GetReflection(); | |||
| CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | |||
| vector<const google::protobuf::FieldDescriptor *> field_desc; | |||
| @@ -2079,7 +2079,7 @@ Status CaffeWeightsParser::ConvertInnerProdcutProto(const google::protobuf::Mess | |||
| return SUCCESS; | |||
| } | |||
| Status CaffeWeightsParser::CheckLayersSize(const google::protobuf::Message *message) { | |||
| Status CaffeWeightsParser::CheckLayersSize(const google::protobuf::Message *message) const { | |||
| const google::protobuf::Reflection *reflection = message->GetReflection(); | |||
| CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | |||
| vector<const google::protobuf::FieldDescriptor *> field_desc; | |||
| @@ -56,17 +56,17 @@ static std::map<std::vector<std::string>, std::vector<std::string>> params_share | |||
| class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||
| public: | |||
| CaffeModelParser() {} | |||
| virtual ~CaffeModelParser() {} | |||
| virtual ~CaffeModelParser() override {} | |||
| /** | |||
| * @ingroup domi_omg | |||
| * @brief Parse the relevant data from the model file and save it to graph | |||
| * @param [in] file Path of model file | |||
| * @param [in] model_path Path of model file | |||
| * @param [in|out] graph graph for saving model information | |||
| * @return SUCCESS parse successfully | |||
| * @return FAILED parse failed | |||
| */ | |||
| Status Parse(const char *file, ge::Graph &graph) override; | |||
| Status Parse(const char *model_path, ge::Graph &graph) override; | |||
| /** | |||
| * @ingroup domi_omg | |||
| @@ -124,7 +124,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||
| } | |||
| private: | |||
| Status Parse(const char *file, ge::ComputeGraphPtr &graph); | |||
| Status Parse(const char *model_path, ge::ComputeGraphPtr &graph); | |||
| /** | |||
| * @ingroup domi_omg | |||
| @@ -190,7 +190,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||
| * @return SUCCESS read file successfully | |||
| * @return FAILED read file failed | |||
| */ | |||
| Status ReadCaffeModelFromText(const char *model_path, google::protobuf::Message *message); | |||
| Status ReadCaffeModelFromText(const char *model_path, google::protobuf::Message *message) const; | |||
| /* | |||
| * @ingroup domi_omg | |||
| @@ -216,7 +216,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||
| * @return FAILED create operator failed | |||
| */ | |||
| Status CreateCustomOperator(std::string op_name, std::string op_type, const google::protobuf::Message *message, | |||
| int index, std::vector<ge::Operator> &operators); | |||
| int index, std::vector<ge::Operator> &operators) const; | |||
| /** | |||
| * @ingroup domi_omg | |||
| * @brief Add blob information to the bottom_blobs_map and top_blobs_map_ | |||
| @@ -259,7 +259,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||
| * @return true valid | |||
| * @return false invalid | |||
| */ | |||
| bool CheckValidLayer(const domi::caffe::LayerParameter &layer); | |||
| bool CheckValidLayer(const domi::caffe::LayerParameter &layer) const; | |||
| /** | |||
| * @ingroup domi_omg | |||
| @@ -267,7 +267,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||
| * @return true is 'Inplace' | |||
| * @return false not is 'Inplace' | |||
| */ | |||
| bool IsInplaceTopBlob(const domi::caffe::LayerParameter &layer, const std::string &top_name); | |||
| bool IsInplaceTopBlob(const domi::caffe::LayerParameter &layer, const std::string &top_name) const; | |||
| /** | |||
| * @ingroup domi_omg | |||
| @@ -275,7 +275,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||
| * @return true yes | |||
| * @return false no | |||
| */ | |||
| bool IsOutputTop(const string &op_name, int32_t index); | |||
| bool IsOutputTop(const string &op_name, const int32_t index) const; | |||
| /** | |||
| * @ingroup domi_omg | |||
| @@ -284,29 +284,30 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||
| * @param [in|out] Layer set of the same param | |||
| * @return Status | |||
| */ | |||
| Status FindShareParamLayers(const std::map<std::string, std::vector<std::string>> &); | |||
| Status FindShareParamLayers(const std::map<std::string, std::vector<std::string>> &layer_params_map) const; | |||
| Status AddTensorDescToOpDesc(ge::OpDescPtr &op_desc, const domi::caffe::LayerParameter &layer); | |||
| Status AddTensorDescToOpDesc(ge::OpDescPtr &op_desc, const domi::caffe::LayerParameter &layer) const; | |||
| Status AddTensorDescToOpDescByIr(ge::OpDescPtr &op_desc, const domi::caffe::LayerParameter &layer, | |||
| const string &op_type); | |||
| Status AddUserOutNodesTop(); | |||
| std::string RemapTopNameByLayer(const domi::caffe::LayerParameter &layer, const std::string &top_name, int index); | |||
| std::string RemapTopNameByLayer(const domi::caffe::LayerParameter &layer, const std::string &top_name, | |||
| int index) const; | |||
| Status GetCustomOp(const domi::caffe::LayerParameter &layer, vector<ge::Operator> &operators); | |||
| bool IsOpAttrEmpty(const ge::Operator &op, const std::string &type); | |||
| bool IsOpAttrEmpty(const ge::Operator &op, const std::string &type) const; | |||
| Status ParseOpParam(const domi::caffe::LayerParameter &layer, ge::OpDescPtr &op, | |||
| std::shared_ptr<ge::OpParser> &op_parser); | |||
| void SaveOrigionLayerTops(domi::caffe::LayerParameter &layer); | |||
| Status ReorderInput(domi::caffe::NetParameter &net); | |||
| Status ReorderInput(domi::caffe::NetParameter &net) const; | |||
| void AddOutputInfoToContext(string layer_name, int32_t top_index); | |||
| void AddOutputInfoToContext(string layer_name, int32_t top_index) const; | |||
| Status ParseOutputNodeTopInfo(const domi::caffe::NetParameter &proto_message); | |||
| @@ -357,8 +358,8 @@ class PARSER_FUNC_VISIBILITY CaffeWeightsParser : public domi::WeightsParser { | |||
| Status Parse(const char *file, ge::ComputeGraphPtr &graph); | |||
| Status ParseWeightByFusionProto(const char *model_path, const string &custom_proto_path, | |||
| const string &custom_proto_name, ge::ComputeGraphPtr &graph); | |||
| Status ParseWeightByFusionProto(const char *weight_path, const string &fusion_proto_path, | |||
| const string &fusion_proto_name, ge::ComputeGraphPtr &graph); | |||
| Status ParseLayerParameter(const google::protobuf::Descriptor *layer_descriptor, | |||
| const google::protobuf::Message *message, | |||
| @@ -367,7 +368,7 @@ class PARSER_FUNC_VISIBILITY CaffeWeightsParser : public domi::WeightsParser { | |||
| Status ConvertLayerParameter(const google::protobuf::Message *layer_message, | |||
| ge::ComputeGraphPtr &graph); | |||
| Status CheckLayersSize(const google::protobuf::Message *message); | |||
| Status CheckLayersSize(const google::protobuf::Message *message) const; | |||
| Status ConvertLayerProto(const google::protobuf::Message *message, | |||
| google::protobuf::Message *layer); | |||
| @@ -381,13 +382,13 @@ class PARSER_FUNC_VISIBILITY CaffeWeightsParser : public domi::WeightsParser { | |||
| google::protobuf::Message *blobs); | |||
| Status ConvertBlobShapeProto(const google::protobuf::Message *message, | |||
| google::protobuf::Message *dest_message); | |||
| google::protobuf::Message *dest_message) const; | |||
| Status ConvertInnerProdcutProto(const google::protobuf::Message *message, | |||
| google::protobuf::Message *dest_message); | |||
| google::protobuf::Message *dest_message) const; | |||
| Status ConvertConvParamProto(const google::protobuf::Message *message, | |||
| google::protobuf::Message *dest_message); | |||
| google::protobuf::Message *dest_message) const; | |||
| /** | |||
| * @ingroup domi_omg | |||
| * @brief Layer types to be ignored in weight resolution | |||
| @@ -341,7 +341,7 @@ domi::Status AclGrphParseUtil::ParseAclOutputNodes(const string &out_nodes) { | |||
| return SUCCESS; | |||
| } | |||
| domi::Status AclGrphParseUtil::ParseAclOutputFp16NodesFormat(const string &is_output_fp16) { | |||
| domi::Status AclGrphParseUtil::ParseAclOutputFp16NodesFormat(const string &is_output_fp16) const { | |||
| if (is_output_fp16.empty()) { | |||
| return SUCCESS; | |||
| } | |||
| @@ -365,7 +365,7 @@ domi::Status AclGrphParseUtil::ParseAclOutputFp16NodesFormat(const string &is_ou | |||
| return SUCCESS; | |||
| } | |||
| domi::Status AclGrphParseUtil::ParseAclEnableScope(const string &enable_scope_fusion_passes) { | |||
| domi::Status AclGrphParseUtil::ParseAclEnableScope(const string &enable_scope_fusion_passes) const { | |||
| ge::GetParserContext().enable_scope_fusion_passes.clear(); | |||
| if (enable_scope_fusion_passes.empty()) { | |||
| return SUCCESS; | |||
| @@ -387,7 +387,7 @@ void AclGrphParseUtil::AddAttrsForInputNodes(const vector<string> &adjust_fp16_f | |||
| } | |||
| domi::Status AclGrphParseUtil::ParseAclInputFp16Nodes(const ComputeGraphPtr &graph, const string &input_fp16_nodes, | |||
| const string &is_input_adjust_hw_layout) { | |||
| const string &is_input_adjust_hw_layout) const { | |||
| GE_CHECK_NOTNULL(graph); | |||
| vector<string> adjust_fp16_format_vec; | |||
| if (!is_input_adjust_hw_layout.empty()) { | |||
| @@ -430,7 +430,7 @@ domi::Status AclGrphParseUtil::ParseAclInputFp16Nodes(const ComputeGraphPtr &gra | |||
| } | |||
| void AclGrphParseUtil::CreateOutputNodesInfo(std::vector<std::pair<ge::NodePtr, int32_t>> &output_nodes_info, | |||
| std::vector<std::string> &output_nodes_name) { | |||
| std::vector<std::string> &output_nodes_name) const { | |||
| output_nodes_name.clear(); | |||
| auto &out_tensor_names = ge::GetParserContext().out_tensor_names; | |||
| if (out_tensor_names.empty()) { | |||
| @@ -462,7 +462,7 @@ void AclGrphParseUtil::CreateOutputNodesInfo(std::vector<std::pair<ge::NodePtr, | |||
| } | |||
| domi::Status AclGrphParseUtil::GetOutputLeaf(NodePtr node, | |||
| std::vector<std::pair<ge::NodePtr, int32_t>> &output_nodes_info) { | |||
| std::vector<std::pair<ge::NodePtr, int32_t>> &output_nodes_info) const { | |||
| ge::OpDescPtr tmpDescPtr = node->GetOpDesc(); | |||
| if (tmpDescPtr == nullptr) { | |||
| REPORT_INNER_ERROR("E19999", "param node has no opdesc."); | |||
| @@ -576,7 +576,7 @@ domi::Status AclGrphParseUtil::SetOutputNodeInfo(ge::Graph &graph, | |||
| return domi::SUCCESS; | |||
| } | |||
| domi::Status AclGrphParseUtil::CheckOptions(const std::map<AscendString, AscendString> &parser_params) { | |||
| domi::Status AclGrphParseUtil::CheckOptions(const std::map<AscendString, AscendString> &parser_params) const { | |||
| for (auto &ele : parser_params) { | |||
| const char *key_ascend = ele.first.GetString(); | |||
| if (key_ascend == nullptr) { | |||
| @@ -48,18 +48,18 @@ class AclGrphParseUtil { | |||
| private: | |||
| bool parser_initialized = false; | |||
| domi::Status CheckOptions(const std::map<AscendString, AscendString> &parser_params); | |||
| domi::Status GetOutputLeaf(NodePtr node, std::vector<std::pair<ge::NodePtr, int32_t>> &output_nodes_info); | |||
| domi::Status CheckOptions(const std::map<AscendString, AscendString> &parser_params) const; | |||
| domi::Status GetOutputLeaf(NodePtr node, std::vector<std::pair<ge::NodePtr, int32_t>> &output_nodes_info) const; | |||
| void CreateOutputNodesInfo(std::vector<std::pair<ge::NodePtr, int32_t>> &output_nodes_info, | |||
| std::vector<std::string> &output_nodes_name); | |||
| std::vector<std::string> &output_nodes_name) const; | |||
| static void SetDefaultFormat(); | |||
| domi::Status ParseAclOutputNodes(const std::string &out_nodes); | |||
| domi::Status ParseAclOutputFp16NodesFormat(const std::string &is_output_fp16); | |||
| domi::Status ParseAclEnableScope(const std::string &enable_scope_fusion_passes); | |||
| domi::Status ParseAclOutputFp16NodesFormat(const std::string &is_output_fp16) const; | |||
| domi::Status ParseAclEnableScope(const std::string &enable_scope_fusion_passes) const; | |||
| static void AddAttrsForInputNodes(const vector<string> &adjust_fp16_format_vec, const string &fp16_nodes_name, | |||
| size_t index, OpDescPtr &op_desc); | |||
| domi::Status ParseAclInputFp16Nodes(const ComputeGraphPtr &graph, const string &input_fp16_nodes, | |||
| const string &is_input_adjust_hw_layout); | |||
| const string &is_input_adjust_hw_layout) const; | |||
| domi::Status GetDefaultOutInfo(ge::ComputeGraphPtr &compute_graph, | |||
| std::vector<std::pair<ge::NodePtr, int32_t>> &output_nodes_info); | |||
| }; | |||
| @@ -36,7 +36,7 @@ const uint32_t kInteval = 2; | |||
| FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelSaver::SaveJsonToFile(const char *file_path, | |||
| const Json &model) { | |||
| Status ret = SUCCESS; | |||
| if (file_path == nullptr || SUCCESS != CheckPath(file_path)) { | |||
| if ((file_path == nullptr) || (CheckPath(file_path) != SUCCESS)) { | |||
| REPORT_INNER_ERROR("E19999", "param file_path is nullptr or checkpath not return success"); | |||
| GELOGE(FAILED, "[Check][Param]Check output file failed."); | |||
| return FAILED; | |||
| @@ -500,8 +500,8 @@ static uint16_t Fp16AddCalVal(uint16_t s_ret, int16_t e_ret, uint16_t m_ret, uin | |||
| bool b_last_bit = ((m_ret & 1) > 0); | |||
| bool b_trunc_high = 0; | |||
| bool b_trunc_left = 0; | |||
| b_trunc_high = (TagFp16RoundMode::kRoundToNearest == g_round_mode) && ((m_trunc & kFp32SignMask) > 0); | |||
| b_trunc_left = (TagFp16RoundMode::kRoundToNearest == g_round_mode) && ((m_trunc & kFp32AbsMax) > 0); | |||
| b_trunc_high = (g_round_mode == TagFp16RoundMode::kRoundToNearest) && ((m_trunc & kFp32SignMask) > 0); | |||
| b_trunc_left = (g_round_mode == TagFp16RoundMode::kRoundToNearest) && ((m_trunc & kFp32AbsMax) > 0); | |||
| m_ret = ManRoundToNearest(b_last_bit, b_trunc_high, b_trunc_left, m_ret, shift_out); | |||
| while (m_ret >= m_max) { | |||
| m_ret = m_ret >> 1; | |||
| @@ -623,8 +623,8 @@ static uint16_t Fp16Mul(uint16_t v_1, uint16_t v_2) { | |||
| bool b_last_bit = ((mul_m & 1) > 0); | |||
| bool b_trunc_high = 0; | |||
| bool b_trunc_left = 0; | |||
| b_trunc_high = (TagFp16RoundMode::kRoundToNearest == g_round_mode) && ((m_trunc & kFp32SignMask) > 0); | |||
| b_trunc_left = (TagFp16RoundMode::kRoundToNearest == g_round_mode) && ((m_trunc & kFp32AbsMax) > 0); | |||
| b_trunc_high = (g_round_mode == TagFp16RoundMode::kRoundToNearest) && ((m_trunc & kFp32SignMask) > 0); | |||
| b_trunc_left = (g_round_mode == TagFp16RoundMode::kRoundToNearest) && ((m_trunc & kFp32AbsMax) > 0); | |||
| mul_m = ManRoundToNearest(b_last_bit, b_trunc_high, b_trunc_left, mul_m); | |||
| while (mul_m >= m_max || e_ret < 0) { | |||
| @@ -966,7 +966,7 @@ static void SetValByUint16Val(const uint16_t &input_val, const uint16_t &sign, u | |||
| bool b_last_bit = ((m_tmp & 1) > 0); | |||
| bool b_trunc_high = 0; | |||
| bool b_trunc_left = 0; | |||
| if (TagFp16RoundMode::kRoundToNearest == g_round_mode) { // trunc | |||
| if (g_round_mode == TagFp16RoundMode::kRoundToNearest) { // trunc | |||
| b_trunc_high = ((m_trunc & kFp32SignMask) > 0); | |||
| b_trunc_left = ((m_trunc & kFp32AbsMax) > 0); | |||
| } | |||
| @@ -1025,7 +1025,7 @@ fp16_t &fp16_t::operator=(const uint16_t &ui_val) { | |||
| bool b_last_bit = ((m_ret & 1) > 0); | |||
| bool b_trunc_high = 0; | |||
| bool b_trunc_left = 0; | |||
| if (TagFp16RoundMode::kRoundToNearest == g_round_mode) { // trunc | |||
| if (g_round_mode == TagFp16RoundMode::kRoundToNearest) { // trunc | |||
| b_trunc_high = ((m_trunc & kFp32SignMask) > 0); | |||
| b_trunc_left = ((m_trunc & kFp32AbsMax) > 0); | |||
| } | |||
| @@ -1069,7 +1069,7 @@ static void SetValByUint32Val(const uint32_t &input_val, const uint16_t &sign, u | |||
| bool b_last_bit = ((m_tmp & 1) > 0); | |||
| bool b_trunc_high = 0; | |||
| bool b_trunc_left = 0; | |||
| if (TagFp16RoundMode::kRoundToNearest == g_round_mode) { // trunc | |||
| if (g_round_mode == TagFp16RoundMode::kRoundToNearest) { // trunc | |||
| b_trunc_high = ((m_trunc & kFp32SignMask) > 0); | |||
| b_trunc_left = ((m_trunc & kFp32AbsMax) > 0); | |||
| } | |||
| @@ -16,7 +16,7 @@ | |||
| #include "framework/omg/parser/parser_types.h" | |||
| namespace ge{ | |||
| namespace ge { | |||
| namespace parser { | |||
| const char *DATA = "Data"; | |||
| const char *AIPPDATA = "AippData"; | |||
| @@ -117,7 +117,7 @@ string GetMessageName(const std::string &line) { | |||
| string CreatTmpName(int len) { | |||
| std::uniform_int_distribution<int> u(kMinRandomNum, kMaxRandomNum); | |||
| std::default_random_engine e; | |||
| e.seed(time(0)); | |||
| e.seed(time(nullptr)); | |||
| string tmp_name = ""; | |||
| for (int i = 0; i < len; i++) { | |||
| tmp_name += std::to_string(u(e)); | |||
| @@ -200,7 +200,7 @@ Status ProtoFileParser::CreatProtoFile() { | |||
| Status ProtoFileParser::ParseProtoFile(const string &proto_file, | |||
| std::map<int, std::pair<string, string>> &identifier_op_map, | |||
| std::map<std::string, std::pair<int, string>> &op_identifier_map) { | |||
| std::map<std::string, std::pair<int, string>> &op_identifier_map) const { | |||
| ifstream read_file; | |||
| read_file.open(proto_file, std::ios::in); | |||
| if (read_file.fail()) { | |||
| @@ -34,7 +34,7 @@ private: | |||
| Status CreatProtoFile(); | |||
| Status ParseProtoFile(const std::string &proto_file, | |||
| std::map<int, std::pair<std::string, std::string> > &identifier_op_map, | |||
| std::map<std::string, std::pair<int, std::string> > &op_identifier_map); | |||
| std::map<std::string, std::pair<int, std::string> > &op_identifier_map) const; | |||
| Status WriteCaffeProtoFile(const char *custom_proto_file, std::ifstream &read_caffe, | |||
| std::ofstream &write_tmp) const; | |||
| Status WriteProtoFile(const char *caffe_proto_file, const char *custom_proto_file); | |||
| @@ -25,7 +25,7 @@ ProtoTypePassManager &ProtoTypePassManager::Instance() { | |||
| return instance; | |||
| } | |||
| Status ProtoTypePassManager::Run(google::protobuf::Message *message, const domi::FrameworkType &fmk_type) { | |||
| Status ProtoTypePassManager::Run(google::protobuf::Message *message, const domi::FrameworkType &fmk_type) const { | |||
| GE_CHECK_NOTNULL(message); | |||
| const auto &pass_vec = ProtoTypePassRegistry::GetInstance().GetCreateFnByType(fmk_type); | |||
| for (const auto &pass_item : pass_vec) { | |||
| @@ -24,7 +24,7 @@ class ProtoTypePassManager { | |||
| public: | |||
| static ProtoTypePassManager &Instance(); | |||
| Status Run(google::protobuf::Message *message, const domi::FrameworkType &fmk_type); | |||
| Status Run(google::protobuf::Message *message, const domi::FrameworkType &fmk_type) const; | |||
| ~ProtoTypePassManager() = default; | |||
| @@ -44,7 +44,7 @@ Status OnnxCustomParserAdapter::ParseParams(const Message *op_src, ge::Operator | |||
| return SUCCESS; | |||
| } | |||
| Status OnnxCustomParserAdapter::ParseParams(const Operator &op_src, Operator &op_dest) { | |||
| Status OnnxCustomParserAdapter::ParseParams(const Operator &op_src, Operator &op_dest) const { | |||
| ParseParamByOpFunc custom_op_parser = domi::OpRegistry::Instance()->GetParseParamByOperatorFunc( | |||
| ParserUtils::GetOperatorType(op_src)); | |||
| GE_CHECK_NOTNULL(custom_op_parser); | |||
| @@ -29,7 +29,7 @@ class PARSER_FUNC_VISIBILITY OnnxCustomParserAdapter : public OnnxOpParser { | |||
| /// @return FAILED parse failed | |||
| Status ParseParams(const Message *op_src, ge::Operator &op_dest) override; | |||
| Status ParseParams(const Operator &op_src, Operator &op_dest); | |||
| Status ParseParams(const Operator &op_src, Operator &op_dest) const; | |||
| }; | |||
| } // namespace ge | |||
| @@ -140,7 +140,7 @@ graphStatus aclgrphParseONNXFromMem(const char *buffer, size_t size, | |||
| } | |||
| // parse caffe model_file to GE graph | |||
| ge::graphStatus ret = model_parser->ParseFromMemory(buffer, (uint32_t)size, graph); | |||
| ge::graphStatus ret = model_parser->ParseFromMemory(buffer, static_cast<uint32_t>(size), graph); | |||
| if (ret != ge::SUCCESS) { | |||
| REPORT_CALL_ERROR("E19999", "ParseFromMemory failed"); | |||
| GELOGE(ret, "[Parser][Graph] %s failed.", ParserUtils::GetGraphName(graph).c_str()); | |||
| @@ -344,7 +344,7 @@ Status OnnxModelParser::ParseInput(const std::map<std::string, ge::onnx::TensorP | |||
| } | |||
| Status OnnxModelParser::ParseInitializer(ge::onnx::GraphProto &onnx_graph, | |||
| std::map<std::string, ge::onnx::TensorProto> &initializer_name_tensor) { | |||
| std::map<std::string, ge::onnx::TensorProto> &initializer_name_tensor) const { | |||
| // Construct const node for weight | |||
| int index = 0; | |||
| for (auto it : initializer_name_tensor) { | |||
| @@ -362,7 +362,7 @@ Status OnnxModelParser::ParseInitializer(ge::onnx::GraphProto &onnx_graph, | |||
| return SUCCESS; | |||
| } | |||
| void OnnxModelParser::UpdateAllNodeName(ge::onnx::GraphProto &onnx_graph) { | |||
| void OnnxModelParser::UpdateAllNodeName(ge::onnx::GraphProto &onnx_graph) const { | |||
| int index = 0; | |||
| for (int i = 0; i < onnx_graph.node_size(); i++) { | |||
| ge::onnx::NodeProto *node = onnx_graph.mutable_node(i); | |||
| @@ -443,7 +443,7 @@ Status OnnxModelParser::AdapterOpType(const ge::onnx::NodeProto *node_proto, std | |||
| } | |||
| Status OnnxModelParser::TransNodeToOperator(const ge::onnx::NodeProto *node_proto, ge::Operator &op, | |||
| const string &op_type) { | |||
| const string &op_type) const { | |||
| GE_CHECK_NOTNULL(node_proto); | |||
| string node_name = node_proto->name(); | |||
| op = ge::OperatorFactory::CreateOperator(node_name.c_str(), op_type.c_str()); | |||
| @@ -560,7 +560,7 @@ Status OnnxModelParser::Prechecker(ge::onnx::GraphProto &onnx_graph) { | |||
| } | |||
| Status OnnxModelParser::ParseOpParam(const ge::onnx::NodeProto *node_proto, ge::Operator &op, | |||
| std::shared_ptr<OpParser> &op_parser) { | |||
| std::shared_ptr<OpParser> &op_parser) const { | |||
| GE_CHECK_NOTNULL(node_proto); | |||
| GE_CHECK_NOTNULL(op_parser); | |||
| std::string op_type = node_proto->op_type(); | |||
| @@ -707,7 +707,7 @@ Status OnnxModelParser::GetGraphOutputs(std::vector<std::pair<Operator, std::vec | |||
| return SUCCESS; | |||
| } | |||
| Status OnnxModelParser::GetModelFromFile(const char *file, ge::onnx::ModelProto &onnx_model) { | |||
| Status OnnxModelParser::GetModelFromFile(const char *file, ge::onnx::ModelProto &onnx_model) const { | |||
| GE_CHECK_NOTNULL(file); | |||
| GELOGI("File path is %s.", file); | |||
| @@ -720,7 +720,7 @@ Status OnnxModelParser::GetModelFromFile(const char *file, ge::onnx::ModelProto | |||
| return SUCCESS; | |||
| } | |||
| Status OnnxModelParser::GetModelFromMemory(const char *data, uint32_t size, ge::onnx::ModelProto &onnx_model) { | |||
| Status OnnxModelParser::GetModelFromMemory(const char *data, uint32_t size, ge::onnx::ModelProto &onnx_model) const { | |||
| GE_CHECK_NOTNULL(data); | |||
| // 1. Get graph from onnx model file. | |||
| @@ -741,7 +741,7 @@ void OnnxModelParser::ClearMembers() { | |||
| } | |||
| Status OnnxModelParser::AdaptAndFindAllOnnxGraph(ge::onnx::GraphProto &root_onnx_graph, | |||
| std::map<std::string, ge::onnx::GraphProto *> &name_to_onnx_graph) { | |||
| std::map<std::string, ge::onnx::GraphProto *> &name_to_onnx_graph) const { | |||
| std::queue<ge::onnx::GraphProto *> onnx_graph_tasks; | |||
| int index = 0; | |||
| onnx_graph_tasks.push(&root_onnx_graph); | |||
| @@ -1040,7 +1040,7 @@ ge::DataType OnnxModelParser::ConvertToGeDataType(const uint32_t type) { | |||
| return ge::OnnxUtil::ConvertOnnxDataType(type); | |||
| } | |||
| void OnnxModelParser::UpdateDataFormat(ge::Graph &graph) { | |||
| void OnnxModelParser::UpdateDataFormat(ge::Graph &graph) const { | |||
| for (GNode &gn : graph.GetDirectNode()) { | |||
| AscendString type; | |||
| (void)gn.GetType(type); | |||
| @@ -90,15 +90,15 @@ class PARSER_FUNC_VISIBILITY OnnxModelParser : public domi::ModelParser { | |||
| Status ParseOutput(ge::onnx::GraphProto &onnx_graph); | |||
| Status ParseInitializer(ge::onnx::GraphProto &onnx_graph, | |||
| std::map<std::string, ge::onnx::TensorProto> &initializer_name_tensor); | |||
| std::map<std::string, ge::onnx::TensorProto> &initializer_name_tensor) const; | |||
| void UpdateAllNodeName(ge::onnx::GraphProto &onnx_graph); | |||
| void UpdateAllNodeName(ge::onnx::GraphProto &onnx_graph) const; | |||
| Status ConstructOriType(const ge::onnx::NodeProto *node_proto, std::string &ori_type); | |||
| Status AdapterOpType(const ge::onnx::NodeProto *node_proto, std::string &ori_type, std::string &om_type); | |||
| Status TransNodeToOperator(const ge::onnx::NodeProto *node_proto, ge::Operator &op, const string &op_type); | |||
| Status TransNodeToOperator(const ge::onnx::NodeProto *node_proto, ge::Operator &op, const string &op_type) const; | |||
| Status ConstructInputOutputContext(const ge::onnx::NodeProto *node_proto); | |||
| @@ -111,22 +111,23 @@ class PARSER_FUNC_VISIBILITY OnnxModelParser : public domi::ModelParser { | |||
| Status Prechecker(ge::onnx::GraphProto &onnx_graph); | |||
| Status GetModelFromFile(const char *file, ge::onnx::ModelProto &onnx_model); | |||
| Status GetModelFromFile(const char *file, ge::onnx::ModelProto &onnx_model) const; | |||
| Status GetModelFromMemory(const char *data, uint32_t size, ge::onnx::ModelProto &onnx_model); | |||
| Status GetModelFromMemory(const char *data, uint32_t size, ge::onnx::ModelProto &onnx_model) const; | |||
| Status ModelParseToGraph(const ge::onnx::ModelProto &onnx_model, ge::Graph &graph); | |||
| Status ModelParseToGraphImpl(bool is_subgraph, ge::onnx::GraphProto &onnx_graph, ge::Graph &graph); | |||
| void UpdateDataFormat(ge::Graph &graph); | |||
| void UpdateDataFormat(ge::Graph &graph) const; | |||
| void ClearMembers(); | |||
| Status ParseOpParam(const ge::onnx::NodeProto *node_proto, ge::Operator &op, std::shared_ptr<OpParser> &op_parser); | |||
| Status ParseOpParam(const ge::onnx::NodeProto *node_proto, ge::Operator &op, | |||
| std::shared_ptr<OpParser> &op_parser) const; | |||
| Status AdaptAndFindAllOnnxGraph(ge::onnx::GraphProto &root_onnx_graph, | |||
| std::map<std::string, ge::onnx::GraphProto *> &name_to_onnx_graph); | |||
| std::map<std::string, ge::onnx::GraphProto *> &name_to_onnx_graph) const; | |||
| Status SetOutputsInfo(const ParserUtils::OutputMapping &final_output_nodes, | |||
| const ParserUtils::OutputMapping &tensor_to_nodes); | |||
| @@ -90,7 +90,7 @@ domi::Status IfSubgraphAdapter::ParseIfNodeSubgraphs( | |||
| } | |||
| domi::Status IfSubgraphAdapter::GetSubgraphsAllInputs(ge::onnx::GraphProto &onnx_graph, | |||
| std::set<std::string> &all_inputs) { | |||
| std::set<std::string> &all_inputs) const { | |||
| std::set<std::string> graph_inputs; | |||
| std::set<std::string> graph_outputs; | |||
| for (int i = 0; i < onnx_graph.node_size(); i++) { | |||
| @@ -115,7 +115,7 @@ domi::Status IfSubgraphAdapter::GetSubgraphsAllInputs(ge::onnx::GraphProto &onnx | |||
| } | |||
| void IfSubgraphAdapter::AddInputNodeForGraph(const std::set<std::string> &all_inputs, | |||
| ge::onnx::GraphProto &onnx_graph) { | |||
| ge::onnx::GraphProto &onnx_graph) const { | |||
| for (const auto &input_name : all_inputs) { | |||
| ge::onnx::ValueInfoProto *value_info = onnx_graph.add_input(); | |||
| value_info->set_name(input_name); | |||
| @@ -123,7 +123,7 @@ void IfSubgraphAdapter::AddInputNodeForGraph(const std::set<std::string> &all_in | |||
| } | |||
| void IfSubgraphAdapter::AddInputForParentNode(const std::set<std::string> &all_inputs, | |||
| ge::onnx::NodeProto &parent_node) { | |||
| ge::onnx::NodeProto &parent_node) const { | |||
| for (const auto &input_name : all_inputs) { | |||
| parent_node.add_input(input_name); | |||
| } | |||
| @@ -31,9 +31,9 @@ class PARSER_FUNC_VISIBILITY IfSubgraphAdapter : public SubgraphAdapter { | |||
| private: | |||
| domi::Status ParseIfNodeSubgraphs(ge::onnx::NodeProto *parent_node, std::vector<ge::onnx::GraphProto *> &onnx_graphs, | |||
| std::map<std::string, ge::onnx::GraphProto *> &name_to_onnx_graph); | |||
| domi::Status GetSubgraphsAllInputs(ge::onnx::GraphProto &onnx_graph, std::set<std::string> &all_inputs); | |||
| void AddInputNodeForGraph(const std::set<std::string> &all_inputs, ge::onnx::GraphProto &onnx_graph); | |||
| void AddInputForParentNode(const std::set<std::string> &all_inputs, ge::onnx::NodeProto &parent_node); | |||
| domi::Status GetSubgraphsAllInputs(ge::onnx::GraphProto &onnx_graph, std::set<std::string> &all_inputs) const; | |||
| void AddInputNodeForGraph(const std::set<std::string> &all_inputs, ge::onnx::GraphProto &onnx_graph) const; | |||
| void AddInputForParentNode(const std::set<std::string> &all_inputs, ge::onnx::NodeProto &parent_node) const; | |||
| }; | |||
| } // namespace ge | |||
| @@ -17,7 +17,7 @@ | |||
| #include "subgraph_adapter_factory.h" | |||
| #include "framework/common/debug/ge_log.h" | |||
| namespace ge{ | |||
| namespace ge { | |||
| SubgraphAdapterFactory* SubgraphAdapterFactory::Instance() { | |||
| static SubgraphAdapterFactory instance; | |||
| return &instance; | |||
| @@ -78,7 +78,7 @@ string NameMapHelper::UniqueNodeName(const string &name) { | |||
| string NameMapHelper::Renormalize(const string &name) const { | |||
| const auto iter = name_mapping_.find(name); | |||
| if (iter == name_mapping_.end()) return string(); | |||
| if (iter == name_mapping_.end()) {return string();} | |||
| return iter->second; | |||
| } | |||
| @@ -301,7 +301,7 @@ Status ParserGraphOptimizer::InsertNode(ge::ComputeGraphPtr sub_graph, vector<ge | |||
| vector<ge::NodePtr>::iterator iter = find(nodes.begin(), nodes.end(), peer_in_anchor->GetOwnerNode()); | |||
| GE_IF_BOOL_EXEC(iter == nodes.end(), output_in_map[out_anchor].emplace_back(peer_in_anchor); hasOutNode = true); | |||
| } | |||
| GE_IF_BOOL_EXEC(hasOutNode == true, output_anchors.emplace_back(out_anchor)); | |||
| GE_IF_BOOL_EXEC(hasOutNode, output_anchors.emplace_back(out_anchor)); | |||
| } | |||
| InControlAnchorPtr node_in_control = node->GetInControlAnchor(); | |||
| @@ -381,7 +381,7 @@ Status ParserGraphOptimizer::RebuildOutputAnchors(vector<ge::OutDataAnchorPtr> & | |||
| GE_CHK_BOOL_EXEC(fusion_op_desc->AddOutputDesc(src_out_desc) == ge::GRAPH_SUCCESS, return FAILED); | |||
| ge::DataType data_type = src_out_desc.GetDataType(); | |||
| auto iter = GE_TENSORFLOW_DATA_TYPE_MAP.find((int32_t)data_type); | |||
| std::map<int32_t, int32_t>::const_iterator iter = GE_TENSORFLOW_DATA_TYPE_MAP.find((int32_t)data_type); | |||
| GE_IF_BOOL_EXEC( | |||
| iter == GE_TENSORFLOW_DATA_TYPE_MAP.end(), | |||
| REPORT_INNER_ERROR("E19999", "datatype:%d of output:%d in node:%s:%s is not supported", | |||
| @@ -417,7 +417,7 @@ Status ParserGraphOptimizer::RebuildInputAnchors(vector<ge::InDataAnchorPtr> &in | |||
| return FAILED, | |||
| "Add fusion_op_desc AddInputDesc failed"); | |||
| ge::DataType data_type = tensorDescPtr->GetDataType(); | |||
| auto iter = GE_TENSORFLOW_DATA_TYPE_MAP.find((int32_t)data_type); | |||
| std::map<int32_t, int32_t>::const_iterator iter = GE_TENSORFLOW_DATA_TYPE_MAP.find((int32_t)data_type); | |||
| GE_IF_BOOL_EXEC( | |||
| iter == GE_TENSORFLOW_DATA_TYPE_MAP.end(), | |||
| REPORT_INNER_ERROR("E19999", "datatype:%d of input:%d in node:%s:%s is not supported", | |||
| @@ -37,8 +37,8 @@ Status ParseParams(const Message *op_src, ArgOpOperator *const op) { | |||
| domi::tensorflow::AttrValue output_attr_value; | |||
| if (TensorFlowUtil::FindAttrValue(node, ge::ATTR_NAME_OUTPUT_TENSOR_DESC, output_attr_value)) { | |||
| GE_CHK_STATUS_RET( | |||
| TensorFlowUtil::TransTensorDescriptor(output_attr_value, op, TENSORFLOW_NORMAL_OUTPUT_TENSOR_FLAG), | |||
| "trans output_attr_value failed, op: %s", node->name().c_str()); | |||
| TensorFlowUtil::TransTensorDescriptor(output_attr_value, op, TENSORFLOW_NORMAL_OUTPUT_TENSOR_FLAG), | |||
| "trans output_attr_value failed, op: %s", node->name().c_str()); | |||
| // For the needs of the Data operator, copy the output description to the input description | |||
| GE_CHK_STATUS_RET(TensorFlowUtil::TransTensorDescriptor(output_attr_value, op, TENSORFLOW_NORMAL_INPUT_TENSOR_FLAG), | |||
| "trans output_attr_value failed, op: %s", node->name().c_str()); | |||
| @@ -40,8 +40,8 @@ Status ParseParams(const Message *op_src, FrameworkOpOperator *op) { | |||
| domi::tensorflow::AttrValue output_attr_value; | |||
| if (TensorFlowUtil::FindAttrValue(node, ge::ATTR_NAME_INPUT_TENSOR_DESC, input_attr_value)) { | |||
| GE_CHK_STATUS_RET( | |||
| TensorFlowUtil::TransTensorDescriptor(input_attr_value, op, TENSORFLOW_NORMAL_INPUT_TENSOR_FLAG, type), | |||
| "trans input_attr_value failed, op: %s", node->name().c_str()); | |||
| TensorFlowUtil::TransTensorDescriptor(input_attr_value, op, TENSORFLOW_NORMAL_INPUT_TENSOR_FLAG, type), | |||
| "trans input_attr_value failed, op: %s", node->name().c_str()); | |||
| } else { | |||
| GELOGD("Frameworkop has no input tensor desc, name:%s, type:%s.", node->name().c_str(), type.c_str()); | |||
| /// _Retval constructed from inference function do not has input_tensor_dec | |||
| @@ -53,8 +53,8 @@ Status ParseParams(const Message *op_src, FrameworkOpOperator *op) { | |||
| } | |||
| if (TensorFlowUtil::FindAttrValue(node, ge::ATTR_NAME_OUTPUT_TENSOR_DESC, output_attr_value)) { | |||
| GE_CHK_STATUS_RET( | |||
| TensorFlowUtil::TransTensorDescriptor(output_attr_value, op, TENSORFLOW_NORMAL_OUTPUT_TENSOR_FLAG, type), | |||
| "trans output_attr_value failed, op: %s", node->name().c_str()); | |||
| TensorFlowUtil::TransTensorDescriptor(output_attr_value, op, TENSORFLOW_NORMAL_OUTPUT_TENSOR_FLAG, type), | |||
| "trans output_attr_value failed, op: %s", node->name().c_str()); | |||
| } else { | |||
| GELOGD("Frameworkop has no output tensor desc, name:%s, type:%s.", node->name().c_str(), type.c_str()); | |||
| } | |||
| @@ -25,7 +25,7 @@ using domi::FusionParseParamByOpFunc; | |||
| namespace ge { | |||
| Status TensorFlowFusionCustomParserAdapter::ParseParams(const vector<const NodeDef *> &v_input_const, | |||
| ge::NodePtr &node) { | |||
| ge::NodePtr &node) const { | |||
| GE_CHECK_NOTNULL(node); | |||
| auto op_dest = node->GetOpDesc(); | |||
| GE_CHECK_NOTNULL(op_dest); | |||
| @@ -31,7 +31,7 @@ class PARSER_FUNC_VISIBILITY TensorFlowFusionCustomParserAdapter : public Tensor | |||
| * @return FAILED parse failed | |||
| * @author | |||
| */ | |||
| Status ParseParams(const vector<const NodeDef *> &v_input_const, ge::NodePtr &node) override; | |||
| Status ParseParams(const vector<const NodeDef *> &v_input_const, ge::NodePtr &node) const override; | |||
| /** | |||
| * @ingroup domi_parser | |||
| @@ -75,7 +75,7 @@ Status TensorFlowFusionOpParser::GetTensorFromNode(const NodeDef *node_def, Tens | |||
| return SUCCESS; | |||
| } | |||
| Status TensorFlowFusionOpParser::ParseParams(const std::vector<const NodeDef *> &v_input_const, NodePtr &op_dest) { | |||
| Status TensorFlowFusionOpParser::ParseParams(const std::vector<const NodeDef *> &v_input_const, NodePtr &op_dest) const { | |||
| (void)v_input_const; | |||
| (void)op_dest; | |||
| return SUCCESS; | |||
| @@ -44,7 +44,7 @@ class PARSER_FUNC_VISIBILITY TensorFlowFusionOpParser : public TensorFlowOpParse | |||
| * @return SUCCESS Parsing success | |||
| * @return FAILED Parsing failed | |||
| */ | |||
| virtual Status ParseParams(const std::vector<const NodeDef *> &v_input_const, ge::NodePtr &node); | |||
| virtual Status ParseParams(const std::vector<const NodeDef *> &v_input_const, ge::NodePtr &node) const; | |||
| /** | |||
| * @ingroup domi_omg | |||
| @@ -494,7 +494,7 @@ Status TensorFlowModelParser::AddNode(const domi::tensorflow::NodeDef *node_def, | |||
| // node is released in destructor | |||
| string node_name = node_def->name(); | |||
| string node_op = node_def->op(); | |||
| auto type_it = tensorflow_op_map.find(node_op); | |||
| std::map<std::string, std::string>::const_iterator type_it = tensorflow_op_map.find(node_op); | |||
| if (type_it == tensorflow_op_map.end()) { | |||
| GELOGI("Can not find,maybe this node has no plugin node_name is %s, node_op is %s ", node_name.c_str(), | |||
| node_op.c_str()); | |||
| @@ -553,7 +553,7 @@ Status TensorFlowModelParser::AddNode(const domi::tensorflow::NodeDef *node_def, | |||
| shared_ptr<OpParser> fusion_op_parser = factory->CreateFusionOpParser(op_type); | |||
| GE_CHECK_NOTNULL(fusion_op_parser); | |||
| // Find all children of the fusion operator | |||
| auto iter = fusion_op_nodedef_map_.find(node_def->name()); | |||
| std::map<string, vector<const NodeDef *>>::const_iterator iter = fusion_op_nodedef_map_.find(node_def->name()); | |||
| if (iter == fusion_op_nodedef_map_.end()) { | |||
| REPORT_INNER_ERROR("E19999", "FusionOp node %s has no children node, check invalid", node_name.c_str()); | |||
| GELOGE(FAILED, "FusionOp node %s has no children node!", node_name.c_str()); | |||
| @@ -756,7 +756,7 @@ Status TensorFlowModelParser::AddEdges(ge::ComputeGraphPtr &graph) { | |||
| } | |||
| // Find that the output of the source node is equal to the destination node | |||
| std::map<std::string, std::vector<std::pair<int32_t, int32_t>>> &dest_input_map = dest_iter->second.input_map; | |||
| auto input_iter = dest_input_map.find(src_op_name); | |||
| std::map<std::string, std::vector<std::pair<int32_t, int32_t>>>::const_iterator input_iter = dest_input_map.find(src_op_name); | |||
| // Find output and input | |||
| if (input_iter == dest_input_map.end()) { | |||
| continue; | |||
| @@ -919,7 +919,7 @@ Status TensorFlowModelParser::ParseNodeDef(TensorFlowModelParser *parser, ge::Co | |||
| return AddScopeInnerNode(parser, graph, graphMutex, node_def); | |||
| } | |||
| auto iterator = parser->adaptedOpTypeMap_.find(node_name); | |||
| std::map<std::string, std::string>::const_iterator iterator = parser->adaptedOpTypeMap_.find(node_name); | |||
| GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( | |||
| iterator == parser->adaptedOpTypeMap_.end(), | |||
| REPORT_INNER_ERROR("E19999", "get adapted op type failed, node name = %s", node_name.c_str()); | |||
| @@ -1374,7 +1374,7 @@ Status TensorFlowModelParser::Parse(const char *model_path, ge::ComputeGraphPtr | |||
| } | |||
| } | |||
| auto iter = function_name_to_graphdef.find(arg.function_name); | |||
| std::map<std::string, domi::tensorflow::GraphDef>::const_iterator iter = function_name_to_graphdef.find(arg.function_name); | |||
| if (iter == function_name_to_graphdef.end()) { | |||
| ErrorManager::GetInstance().ATCReportErrMessage("E12013", {"functionname"}, {arg.function_name}); | |||
| GELOGE(FAILED, "Failed to get subgraph by function name %s", arg.function_name.c_str()); | |||
| @@ -1866,7 +1866,7 @@ Status TensorFlowModelParser::UpdateAllNodeOpContext(shared_ptr<ge::ScopeGraph> | |||
| ge::ScopeFusionOpInfo info; | |||
| if (IsFusionOpChild(op_node_name, &info) && nodedef_map_[op_node_name]->op() != TENSORFLOWF_NODE_OP_CONST) { | |||
| // This node is a fusion operator | |||
| auto fusion_iter = tmp_fusion_op_node_context_map.find(info.fusion_node_name); | |||
| std::map<std::string, OpNodeContext>::const_iterator fusion_iter = tmp_fusion_op_node_context_map.find(info.fusion_node_name); | |||
| if (fusion_iter == tmp_fusion_op_node_context_map.end()) { | |||
| OpNodeContext op_node_context; | |||
| tmp_fusion_op_node_context_map[info.fusion_node_name] = op_node_context; | |||
| @@ -2116,7 +2116,7 @@ Status TensorFlowModelParser::NormalizeInputOrOutputMap( | |||
| } | |||
| string name = to_string(pair.first) + ":" + to_string(pair.second); | |||
| auto compare_iter = compare_set.find(name); | |||
| std::set<std::string>::const_iterator compare_iter = compare_set.find(name); | |||
| if (compare_iter != compare_set.end()) { | |||
| // pair<from,to> repeat, ignore | |||
| continue; | |||
| @@ -2155,7 +2155,7 @@ void TensorFlowModelParser::SaveEdgesControlInfo(const string &node_name, const | |||
| } | |||
| void TensorFlowModelParser::UpdateEdgesControlInfo(const ge::ScopeFusionOpInfo &info) { | |||
| auto iter = edges_control_map.find(info.node_name); | |||
| std::map<std::string, std::vector<int32_t>>::const_iterator iter = edges_control_map.find(info.node_name); | |||
| if (iter != edges_control_map.end()) { | |||
| // Delete the original fusion operator node information and add the fusion operator control edge information | |||
| edges_control_map.erase(iter); | |||
| @@ -2479,7 +2479,7 @@ Status TensorFlowModelParser::OptimizeIdentityByOutput(map<string, NodeDef *> &n | |||
| return INTERNAL_ERROR, "Can't find op node context."); | |||
| OpNodeContext op_node_context = context_iter->second; | |||
| auto node_def_iter = nodedef_map.find(curr_node_name); | |||
| std::map<std::string, NodeDef *>::const_iterator node_def_iter = nodedef_map.find(curr_node_name); | |||
| GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( | |||
| (node_def_iter == nodedef_map.end()), | |||
| REPORT_INNER_ERROR("E19999", "Node:%s can't find in nodedef_map, check invalid", curr_node_name.c_str()); | |||
| @@ -2809,7 +2809,7 @@ Status GetTransposeInfo(GraphDef *graph_def, std::map<std::string, std::string> | |||
| Status EraseTransposeNode(std::map<std::string, std::string> &softmaxInfo, | |||
| std::map<std::string, DelTransposeInfo> &transposeInfo) { | |||
| auto itTranspose = transposeInfo.begin(); | |||
| std::map<std::string, DelTransposeInfo>::const_iterator itTranspose = transposeInfo.begin(); | |||
| for (; itTranspose != transposeInfo.end();) { | |||
| // transpose --> softmax | |||
| bool bErase = true; | |||
| @@ -3144,7 +3144,7 @@ Status TensorFlowModelParser::TrimGraphByInput(const domi::tensorflow::GraphDef | |||
| const ge::ParserContext &ctx = ge::GetParserContext(); | |||
| std::map<std::string, std::vector<int64_t>> input_dims = ctx.input_dims; | |||
| std::vector<int64_t> designated_dims = input_dims.at(node.name()); | |||
| for (int32_t i = 0; i < (int32_t)designated_dims.size(); i++) { | |||
| for (int32_t i = 0; i < static_cast<int32_t>(designated_dims.size()); i++) { | |||
| data_shape->add_dim()->set_size(designated_dims[i]); | |||
| } | |||
| google::protobuf::Map<std::string, domi::tensorflow::AttrValue> *attr = placeholder_node.mutable_attr(); | |||
| @@ -3217,7 +3217,7 @@ Status TensorFlowModelParser::TrimGraphByOutput(const domi::tensorflow::GraphDef | |||
| const ge::ParserContext &ctx = ge::GetParserContext(); | |||
| std::map<std::string, std::vector<int64_t>> input_dims = ctx.input_dims; | |||
| std::vector<int64_t> designated_dims = input_dims.at(node.name()); | |||
| for (int32_t i = 0; i < (int32_t)designated_dims.size(); i++) { | |||
| for (int32_t i = 0; i < static_cast<int32_t>(designated_dims.size()); i++) { | |||
| data_shape->add_dim()->set_size(designated_dims[i]); | |||
| } | |||
| google::protobuf::Map<std::string, domi::tensorflow::AttrValue> *attr = placeholder_node.mutable_attr(); | |||
| @@ -3425,7 +3425,7 @@ Status TensorFlowModelParser::OptimizeConstNodes4CustomOp(domi::tensorflow::Grap | |||
| Status TensorFlowModelParser::AddControlEdgeAfterRemoveInputs(domi::tensorflow::GraphDef *graph_def, | |||
| domi::tensorflow::NodeDef *node_def, | |||
| const map<string, NodeDef *> &all_node_map, | |||
| const vector<string> &removed_inputs_vec) { | |||
| const vector<string> &removed_inputs_vec) const { | |||
| GE_CHECK_NOTNULL(graph_def); | |||
| GE_CHECK_NOTNULL(node_def); | |||
| for (const auto &remove_input : removed_inputs_vec) { | |||
| @@ -3513,7 +3513,7 @@ Status TensorFlowModelParser::RemoveInputs(domi::tensorflow::GraphDef *graph_def | |||
| } | |||
| void TensorFlowModelParser::RemoveInputAttr(domi::tensorflow::NodeDef *node_def, | |||
| const map<string, vector<int>> &remove_inputs_map) { | |||
| const map<string, vector<int>> &remove_inputs_map) const { | |||
| // The caller guarantees that the pointer is not null | |||
| auto *inputs = node_def->mutable_input(); | |||
| google::protobuf::Map<std::string, domi::tensorflow::AttrValue> *attr_map = node_def->mutable_attr(); | |||
| @@ -570,9 +570,9 @@ class PARSER_FUNC_VISIBILITY TensorFlowModelParser : public domi::ModelParser { | |||
| Status AddControlEdgeAfterRemoveInputs(domi::tensorflow::GraphDef *graph_def, | |||
| domi::tensorflow::NodeDef *node_def, | |||
| const map<string, NodeDef *> &all_node_map, | |||
| const vector<string> &removed_inputs_vec); | |||
| const vector<string> &removed_inputs_vec) const; | |||
| void RemoveInputAttr(domi::tensorflow::NodeDef *node_def, const map<string, vector<int>> &remove_inputs_map); | |||
| void RemoveInputAttr(domi::tensorflow::NodeDef *node_def, const map<string, vector<int>> &remove_inputs_map) const; | |||
| /** | |||
| * @ingroup domi_omg | |||
| @@ -74,11 +74,11 @@ Status TensorFlowReshapeParser::ParseParams(const Message *op_src, ge::OpDescPtr | |||
| ge::GeTensorDesc output_desc; | |||
| if (TensorFlowUtil::FindAttrValue(node_src, ge::ATTR_NAME_INPUT_TENSOR_DESC, input_attr_value)) { | |||
| GE_CHK_BOOL_RET_STATUS(SUCCESS == ParseDesc(input_attr_value, input_desc), FAILED, "parse input desc failed"); | |||
| GE_CHK_BOOL_RET_STATUS(ParseDesc(input_attr_value, input_desc) == SUCCESS, FAILED, "parse input desc failed"); | |||
| } | |||
| if (TensorFlowUtil::FindAttrValue(node_src, ge::ATTR_NAME_OUTPUT_TENSOR_DESC, output_attr_value)) { | |||
| GE_CHK_BOOL_RET_STATUS(SUCCESS == ParseDesc(output_attr_value, output_desc), FAILED, | |||
| GE_CHK_BOOL_RET_STATUS(ParseDesc(output_attr_value, output_desc) == SUCCESS, FAILED, | |||
| "parse output desc failed"); | |||
| } | |||