@@ -29,7 +29,7 @@ using domi::CAFFE; | |||||
namespace ge { | namespace ge { | ||||
Status CaffeDataParser::GetOutputDesc(const string &name, const std::vector<int64_t> &input_dims, | 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); | GE_CHECK_NOTNULL(op); | ||||
GELOGI("The input dim size is %zu in layer %s.", input_dims.size(), name.c_str()); | 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 SUCCESS parse successfully | ||||
* @return FAILED parse failed | * @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` | // caffe data layer type could be type of `Input` or `DummyData` | ||||
Status ParseParamsForInput(const domi::caffe::LayerParameter *layer, ge::OpDescPtr &op); | Status ParseParamsForInput(const domi::caffe::LayerParameter *layer, ge::OpDescPtr &op); | ||||
@@ -512,7 +512,7 @@ Status CaffeModelParser::ReadModelWithoutWarning(const char *model_path, google: | |||||
return SUCCESS; | 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(model_path); | ||||
GE_CHECK_NOTNULL(message); | GE_CHECK_NOTNULL(message); | ||||
GELOGI("Start to read model file: %s.", model_path); | 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, | 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()) { | if (op_name.empty() || op_type.empty()) { | ||||
REPORT_INNER_ERROR("E19999", "[Check][Param]Name or type of layer is empty, name: %s, type: %s.", | 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()); | op_name.c_str(), op_type.c_str()); | ||||
@@ -616,7 +616,7 @@ Status CaffeModelParser::CreateCustomOperator(string op_name, string op_type, co | |||||
return SUCCESS; | 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); | auto iter_node_name = ge::GetParserContext().out_nodes_map.find(layer_name); | ||||
if (iter_node_name != ge::GetParserContext().out_nodes_map.end()) { | if (iter_node_name != ge::GetParserContext().out_nodes_map.end()) { | ||||
iter_node_name->second.emplace_back(top_index); | iter_node_name->second.emplace_back(top_index); | ||||
@@ -705,7 +705,7 @@ Status CaffeModelParser::AddBlobsToMap(const domi::caffe::LayerParameter &layer, | |||||
return SUCCESS; | 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; | std::map<AscendString, AscendString> attrs; | ||||
(void)op.GetAllAttrNamesAndTypes(attrs); | (void)op.GetAllAttrNamesAndTypes(attrs); | ||||
@@ -899,7 +899,7 @@ Status CaffeModelParser::AddNode(const domi::caffe::LayerParameter &layer, ge::C | |||||
return SUCCESS; | 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); | GE_CHECK_NOTNULL(op_desc); | ||||
// Data node input and output tensordesc added in parserparam | // Data node input and output tensordesc added in parserparam | ||||
if (op_desc->GetType() == ge::parser::DATA) { | if (op_desc->GetType() == ge::parser::DATA) { | ||||
@@ -1069,7 +1069,7 @@ Status CaffeModelParser::AddEdges(ge::ComputeGraphPtr &graph) { | |||||
return SUCCESS; | 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; | bool ret = false; | ||||
auto iter = ge::GetParserContext().out_nodes_map.find(op_name); | auto iter = ge::GetParserContext().out_nodes_map.find(op_name); | ||||
if (iter != ge::GetParserContext().out_nodes_map.end()) { | if (iter != ge::GetParserContext().out_nodes_map.end()) { | ||||
@@ -1169,7 +1169,7 @@ Status CaffeModelParser::AddOutputTop(const domi::caffe::NetParameter &proto_mes | |||||
return SUCCESS; | return SUCCESS; | ||||
} | } | ||||
bool CaffeModelParser::CheckValidLayer(const domi::caffe::LayerParameter &layer) { | |||||
bool CaffeModelParser::CheckValidLayer(const domi::caffe::LayerParameter &layer) const { | |||||
if (layer.include_size() != 0) { | if (layer.include_size() != 0) { | ||||
bool filter_flag = false; | bool filter_flag = false; | ||||
for (int32_t j = 0; j < layer.include_size(); j++) { | for (int32_t j = 0; j < layer.include_size(); j++) { | ||||
@@ -1189,7 +1189,7 @@ bool CaffeModelParser::CheckValidLayer(const domi::caffe::LayerParameter &layer) | |||||
return true; | 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()) { | for (auto &bottom_name : layer.bottom()) { | ||||
if (top_name == bottom_name) { | if (top_name == bottom_name) { | ||||
return true; | 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, | 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)); | 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.", | "[Check][Layer]layer phase is train, skip this layer, name:%s, type:%s.", | ||||
layer.name().c_str(), layer.type().c_str()); | 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." | 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:%s, layer type:%s", proto_message.name().c_str(), | ||||
layer.name().c_str(), layer.type().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.", | "[Check][Layer]layer phase is train, skip this layer, name:%s, type:%s.", | ||||
layer.name().c_str(), layer.type().c_str()); | 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." | 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:%s, layer type:%s", proto_message.name().c_str(), | ||||
layer.name().c_str(), layer.type().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; | 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 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) { | 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) { | 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); | 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(); | int layer_size = net.layer_size(); | ||||
for (int i = 0; i < layer_size; ++i) { | for (int i = 0; i < layer_size; ++i) { | ||||
domi::caffe::LayerParameter *layer = net.mutable_layer(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, | 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(); | const google::protobuf::Reflection *reflection = message->GetReflection(); | ||||
CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | ||||
vector<const google::protobuf::FieldDescriptor *> field_desc; | 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, | 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(); | const google::protobuf::Reflection *reflection = message->GetReflection(); | ||||
CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | ||||
vector<const google::protobuf::FieldDescriptor *> field_desc; | 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, | 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(); | const google::protobuf::Reflection *reflection = message->GetReflection(); | ||||
CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | ||||
vector<const google::protobuf::FieldDescriptor *> field_desc; | vector<const google::protobuf::FieldDescriptor *> field_desc; | ||||
@@ -2079,7 +2079,7 @@ Status CaffeWeightsParser::ConvertInnerProdcutProto(const google::protobuf::Mess | |||||
return SUCCESS; | 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(); | const google::protobuf::Reflection *reflection = message->GetReflection(); | ||||
CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | CAFFE_CHECK_NULL_AND_REPROT_ERRORMSG(reflection, "Get Reflection failed in google::protobuf::Message"); | ||||
vector<const google::protobuf::FieldDescriptor *> field_desc; | 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 { | class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | ||||
public: | public: | ||||
CaffeModelParser() {} | CaffeModelParser() {} | ||||
virtual ~CaffeModelParser() {} | |||||
virtual ~CaffeModelParser() override {} | |||||
/** | /** | ||||
* @ingroup domi_omg | * @ingroup domi_omg | ||||
* @brief Parse the relevant data from the model file and save it to graph | * @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 | * @param [in|out] graph graph for saving model information | ||||
* @return SUCCESS parse successfully | * @return SUCCESS parse successfully | ||||
* @return FAILED parse failed | * @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 | * @ingroup domi_omg | ||||
@@ -124,7 +124,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||||
} | } | ||||
private: | private: | ||||
Status Parse(const char *file, ge::ComputeGraphPtr &graph); | |||||
Status Parse(const char *model_path, ge::ComputeGraphPtr &graph); | |||||
/** | /** | ||||
* @ingroup domi_omg | * @ingroup domi_omg | ||||
@@ -190,7 +190,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||||
* @return SUCCESS read file successfully | * @return SUCCESS read file successfully | ||||
* @return FAILED read file failed | * @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 | * @ingroup domi_omg | ||||
@@ -216,7 +216,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||||
* @return FAILED create operator failed | * @return FAILED create operator failed | ||||
*/ | */ | ||||
Status CreateCustomOperator(std::string op_name, std::string op_type, const google::protobuf::Message *message, | 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 | * @ingroup domi_omg | ||||
* @brief Add blob information to the bottom_blobs_map and top_blobs_map_ | * @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 true valid | ||||
* @return false invalid | * @return false invalid | ||||
*/ | */ | ||||
bool CheckValidLayer(const domi::caffe::LayerParameter &layer); | |||||
bool CheckValidLayer(const domi::caffe::LayerParameter &layer) const; | |||||
/** | /** | ||||
* @ingroup domi_omg | * @ingroup domi_omg | ||||
@@ -267,7 +267,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||||
* @return true is 'Inplace' | * @return true is 'Inplace' | ||||
* @return false not 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 | * @ingroup domi_omg | ||||
@@ -275,7 +275,7 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||||
* @return true yes | * @return true yes | ||||
* @return false no | * @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 | * @ingroup domi_omg | ||||
@@ -284,29 +284,30 @@ class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { | |||||
* @param [in|out] Layer set of the same param | * @param [in|out] Layer set of the same param | ||||
* @return Status | * @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, | Status AddTensorDescToOpDescByIr(ge::OpDescPtr &op_desc, const domi::caffe::LayerParameter &layer, | ||||
const string &op_type); | const string &op_type); | ||||
Status AddUserOutNodesTop(); | 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); | 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, | Status ParseOpParam(const domi::caffe::LayerParameter &layer, ge::OpDescPtr &op, | ||||
std::shared_ptr<ge::OpParser> &op_parser); | std::shared_ptr<ge::OpParser> &op_parser); | ||||
void SaveOrigionLayerTops(domi::caffe::LayerParameter &layer); | 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); | 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 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, | Status ParseLayerParameter(const google::protobuf::Descriptor *layer_descriptor, | ||||
const google::protobuf::Message *message, | 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, | Status ConvertLayerParameter(const google::protobuf::Message *layer_message, | ||||
ge::ComputeGraphPtr &graph); | 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, | Status ConvertLayerProto(const google::protobuf::Message *message, | ||||
google::protobuf::Message *layer); | google::protobuf::Message *layer); | ||||
@@ -381,13 +382,13 @@ class PARSER_FUNC_VISIBILITY CaffeWeightsParser : public domi::WeightsParser { | |||||
google::protobuf::Message *blobs); | google::protobuf::Message *blobs); | ||||
Status ConvertBlobShapeProto(const google::protobuf::Message *message, | 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, | 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, | Status ConvertConvParamProto(const google::protobuf::Message *message, | ||||
google::protobuf::Message *dest_message); | |||||
google::protobuf::Message *dest_message) const; | |||||
/** | /** | ||||
* @ingroup domi_omg | * @ingroup domi_omg | ||||
* @brief Layer types to be ignored in weight resolution | * @brief Layer types to be ignored in weight resolution | ||||
@@ -341,7 +341,7 @@ domi::Status AclGrphParseUtil::ParseAclOutputNodes(const string &out_nodes) { | |||||
return SUCCESS; | 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()) { | if (is_output_fp16.empty()) { | ||||
return SUCCESS; | return SUCCESS; | ||||
} | } | ||||
@@ -365,7 +365,7 @@ domi::Status AclGrphParseUtil::ParseAclOutputFp16NodesFormat(const string &is_ou | |||||
return SUCCESS; | 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(); | ge::GetParserContext().enable_scope_fusion_passes.clear(); | ||||
if (enable_scope_fusion_passes.empty()) { | if (enable_scope_fusion_passes.empty()) { | ||||
return SUCCESS; | 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, | 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); | GE_CHECK_NOTNULL(graph); | ||||
vector<string> adjust_fp16_format_vec; | vector<string> adjust_fp16_format_vec; | ||||
if (!is_input_adjust_hw_layout.empty()) { | 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, | 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(); | output_nodes_name.clear(); | ||||
auto &out_tensor_names = ge::GetParserContext().out_tensor_names; | auto &out_tensor_names = ge::GetParserContext().out_tensor_names; | ||||
if (out_tensor_names.empty()) { | if (out_tensor_names.empty()) { | ||||
@@ -462,7 +462,7 @@ void AclGrphParseUtil::CreateOutputNodesInfo(std::vector<std::pair<ge::NodePtr, | |||||
} | } | ||||
domi::Status AclGrphParseUtil::GetOutputLeaf(NodePtr node, | 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(); | ge::OpDescPtr tmpDescPtr = node->GetOpDesc(); | ||||
if (tmpDescPtr == nullptr) { | if (tmpDescPtr == nullptr) { | ||||
REPORT_INNER_ERROR("E19999", "param node has no opdesc."); | REPORT_INNER_ERROR("E19999", "param node has no opdesc."); | ||||
@@ -576,7 +576,7 @@ domi::Status AclGrphParseUtil::SetOutputNodeInfo(ge::Graph &graph, | |||||
return domi::SUCCESS; | 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) { | for (auto &ele : parser_params) { | ||||
const char *key_ascend = ele.first.GetString(); | const char *key_ascend = ele.first.GetString(); | ||||
if (key_ascend == nullptr) { | if (key_ascend == nullptr) { | ||||
@@ -48,18 +48,18 @@ class AclGrphParseUtil { | |||||
private: | private: | ||||
bool parser_initialized = false; | 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, | 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(); | static void SetDefaultFormat(); | ||||
domi::Status ParseAclOutputNodes(const std::string &out_nodes); | 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, | static void AddAttrsForInputNodes(const vector<string> &adjust_fp16_format_vec, const string &fp16_nodes_name, | ||||
size_t index, OpDescPtr &op_desc); | size_t index, OpDescPtr &op_desc); | ||||
domi::Status ParseAclInputFp16Nodes(const ComputeGraphPtr &graph, const string &input_fp16_nodes, | 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, | domi::Status GetDefaultOutInfo(ge::ComputeGraphPtr &compute_graph, | ||||
std::vector<std::pair<ge::NodePtr, int32_t>> &output_nodes_info); | 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, | FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelSaver::SaveJsonToFile(const char *file_path, | ||||
const Json &model) { | const Json &model) { | ||||
Status ret = SUCCESS; | 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"); | REPORT_INNER_ERROR("E19999", "param file_path is nullptr or checkpath not return success"); | ||||
GELOGE(FAILED, "[Check][Param]Check output file failed."); | GELOGE(FAILED, "[Check][Param]Check output file failed."); | ||||
return 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_last_bit = ((m_ret & 1) > 0); | ||||
bool b_trunc_high = 0; | bool b_trunc_high = 0; | ||||
bool b_trunc_left = 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); | m_ret = ManRoundToNearest(b_last_bit, b_trunc_high, b_trunc_left, m_ret, shift_out); | ||||
while (m_ret >= m_max) { | while (m_ret >= m_max) { | ||||
m_ret = m_ret >> 1; | 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_last_bit = ((mul_m & 1) > 0); | ||||
bool b_trunc_high = 0; | bool b_trunc_high = 0; | ||||
bool b_trunc_left = 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); | mul_m = ManRoundToNearest(b_last_bit, b_trunc_high, b_trunc_left, mul_m); | ||||
while (mul_m >= m_max || e_ret < 0) { | 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_last_bit = ((m_tmp & 1) > 0); | ||||
bool b_trunc_high = 0; | bool b_trunc_high = 0; | ||||
bool b_trunc_left = 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_high = ((m_trunc & kFp32SignMask) > 0); | ||||
b_trunc_left = ((m_trunc & kFp32AbsMax) > 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_last_bit = ((m_ret & 1) > 0); | ||||
bool b_trunc_high = 0; | bool b_trunc_high = 0; | ||||
bool b_trunc_left = 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_high = ((m_trunc & kFp32SignMask) > 0); | ||||
b_trunc_left = ((m_trunc & kFp32AbsMax) > 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_last_bit = ((m_tmp & 1) > 0); | ||||
bool b_trunc_high = 0; | bool b_trunc_high = 0; | ||||
bool b_trunc_left = 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_high = ((m_trunc & kFp32SignMask) > 0); | ||||
b_trunc_left = ((m_trunc & kFp32AbsMax) > 0); | b_trunc_left = ((m_trunc & kFp32AbsMax) > 0); | ||||
} | } | ||||
@@ -16,7 +16,7 @@ | |||||
#include "framework/omg/parser/parser_types.h" | #include "framework/omg/parser/parser_types.h" | ||||
namespace ge{ | |||||
namespace ge { | |||||
namespace parser { | namespace parser { | ||||
const char *DATA = "Data"; | const char *DATA = "Data"; | ||||
const char *AIPPDATA = "AippData"; | const char *AIPPDATA = "AippData"; | ||||
@@ -117,7 +117,7 @@ string GetMessageName(const std::string &line) { | |||||
string CreatTmpName(int len) { | string CreatTmpName(int len) { | ||||
std::uniform_int_distribution<int> u(kMinRandomNum, kMaxRandomNum); | std::uniform_int_distribution<int> u(kMinRandomNum, kMaxRandomNum); | ||||
std::default_random_engine e; | std::default_random_engine e; | ||||
e.seed(time(0)); | |||||
e.seed(time(nullptr)); | |||||
string tmp_name = ""; | string tmp_name = ""; | ||||
for (int i = 0; i < len; i++) { | for (int i = 0; i < len; i++) { | ||||
tmp_name += std::to_string(u(e)); | tmp_name += std::to_string(u(e)); | ||||
@@ -200,7 +200,7 @@ Status ProtoFileParser::CreatProtoFile() { | |||||
Status ProtoFileParser::ParseProtoFile(const string &proto_file, | Status ProtoFileParser::ParseProtoFile(const string &proto_file, | ||||
std::map<int, std::pair<string, string>> &identifier_op_map, | 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; | ifstream read_file; | ||||
read_file.open(proto_file, std::ios::in); | read_file.open(proto_file, std::ios::in); | ||||
if (read_file.fail()) { | if (read_file.fail()) { | ||||
@@ -34,7 +34,7 @@ private: | |||||
Status CreatProtoFile(); | Status CreatProtoFile(); | ||||
Status ParseProtoFile(const std::string &proto_file, | Status ParseProtoFile(const std::string &proto_file, | ||||
std::map<int, std::pair<std::string, std::string> > &identifier_op_map, | 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, | Status WriteCaffeProtoFile(const char *custom_proto_file, std::ifstream &read_caffe, | ||||
std::ofstream &write_tmp) const; | std::ofstream &write_tmp) const; | ||||
Status WriteProtoFile(const char *caffe_proto_file, const char *custom_proto_file); | Status WriteProtoFile(const char *caffe_proto_file, const char *custom_proto_file); | ||||
@@ -25,7 +25,7 @@ ProtoTypePassManager &ProtoTypePassManager::Instance() { | |||||
return 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); | GE_CHECK_NOTNULL(message); | ||||
const auto &pass_vec = ProtoTypePassRegistry::GetInstance().GetCreateFnByType(fmk_type); | const auto &pass_vec = ProtoTypePassRegistry::GetInstance().GetCreateFnByType(fmk_type); | ||||
for (const auto &pass_item : pass_vec) { | for (const auto &pass_item : pass_vec) { | ||||
@@ -24,7 +24,7 @@ class ProtoTypePassManager { | |||||
public: | public: | ||||
static ProtoTypePassManager &Instance(); | 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; | ~ProtoTypePassManager() = default; | ||||
@@ -44,7 +44,7 @@ Status OnnxCustomParserAdapter::ParseParams(const Message *op_src, ge::Operator | |||||
return SUCCESS; | 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( | ParseParamByOpFunc custom_op_parser = domi::OpRegistry::Instance()->GetParseParamByOperatorFunc( | ||||
ParserUtils::GetOperatorType(op_src)); | ParserUtils::GetOperatorType(op_src)); | ||||
GE_CHECK_NOTNULL(custom_op_parser); | GE_CHECK_NOTNULL(custom_op_parser); | ||||
@@ -29,7 +29,7 @@ class PARSER_FUNC_VISIBILITY OnnxCustomParserAdapter : public OnnxOpParser { | |||||
/// @return FAILED parse failed | /// @return FAILED parse failed | ||||
Status ParseParams(const Message *op_src, ge::Operator &op_dest) override; | 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 | } // namespace ge | ||||
@@ -140,7 +140,7 @@ graphStatus aclgrphParseONNXFromMem(const char *buffer, size_t size, | |||||
} | } | ||||
// parse caffe model_file to GE graph | // 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) { | if (ret != ge::SUCCESS) { | ||||
REPORT_CALL_ERROR("E19999", "ParseFromMemory failed"); | REPORT_CALL_ERROR("E19999", "ParseFromMemory failed"); | ||||
GELOGE(ret, "[Parser][Graph] %s failed.", ParserUtils::GetGraphName(graph).c_str()); | 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, | 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 | // Construct const node for weight | ||||
int index = 0; | int index = 0; | ||||
for (auto it : initializer_name_tensor) { | for (auto it : initializer_name_tensor) { | ||||
@@ -362,7 +362,7 @@ Status OnnxModelParser::ParseInitializer(ge::onnx::GraphProto &onnx_graph, | |||||
return SUCCESS; | return SUCCESS; | ||||
} | } | ||||
void OnnxModelParser::UpdateAllNodeName(ge::onnx::GraphProto &onnx_graph) { | |||||
void OnnxModelParser::UpdateAllNodeName(ge::onnx::GraphProto &onnx_graph) const { | |||||
int index = 0; | int index = 0; | ||||
for (int i = 0; i < onnx_graph.node_size(); i++) { | for (int i = 0; i < onnx_graph.node_size(); i++) { | ||||
ge::onnx::NodeProto *node = onnx_graph.mutable_node(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, | 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); | GE_CHECK_NOTNULL(node_proto); | ||||
string node_name = node_proto->name(); | string node_name = node_proto->name(); | ||||
op = ge::OperatorFactory::CreateOperator(node_name.c_str(), op_type.c_str()); | 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, | 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(node_proto); | ||||
GE_CHECK_NOTNULL(op_parser); | GE_CHECK_NOTNULL(op_parser); | ||||
std::string op_type = node_proto->op_type(); | std::string op_type = node_proto->op_type(); | ||||
@@ -707,7 +707,7 @@ Status OnnxModelParser::GetGraphOutputs(std::vector<std::pair<Operator, std::vec | |||||
return SUCCESS; | 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); | GE_CHECK_NOTNULL(file); | ||||
GELOGI("File path is %s.", file); | GELOGI("File path is %s.", file); | ||||
@@ -720,7 +720,7 @@ Status OnnxModelParser::GetModelFromFile(const char *file, ge::onnx::ModelProto | |||||
return SUCCESS; | 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); | GE_CHECK_NOTNULL(data); | ||||
// 1. Get graph from onnx model file. | // 1. Get graph from onnx model file. | ||||
@@ -741,7 +741,7 @@ void OnnxModelParser::ClearMembers() { | |||||
} | } | ||||
Status OnnxModelParser::AdaptAndFindAllOnnxGraph(ge::onnx::GraphProto &root_onnx_graph, | 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; | std::queue<ge::onnx::GraphProto *> onnx_graph_tasks; | ||||
int index = 0; | int index = 0; | ||||
onnx_graph_tasks.push(&root_onnx_graph); | onnx_graph_tasks.push(&root_onnx_graph); | ||||
@@ -1040,7 +1040,7 @@ ge::DataType OnnxModelParser::ConvertToGeDataType(const uint32_t type) { | |||||
return ge::OnnxUtil::ConvertOnnxDataType(type); | return ge::OnnxUtil::ConvertOnnxDataType(type); | ||||
} | } | ||||
void OnnxModelParser::UpdateDataFormat(ge::Graph &graph) { | |||||
void OnnxModelParser::UpdateDataFormat(ge::Graph &graph) const { | |||||
for (GNode &gn : graph.GetDirectNode()) { | for (GNode &gn : graph.GetDirectNode()) { | ||||
AscendString type; | AscendString type; | ||||
(void)gn.GetType(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 ParseOutput(ge::onnx::GraphProto &onnx_graph); | ||||
Status ParseInitializer(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 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 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); | 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 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 ModelParseToGraph(const ge::onnx::ModelProto &onnx_model, ge::Graph &graph); | ||||
Status ModelParseToGraphImpl(bool is_subgraph, ge::onnx::GraphProto &onnx_graph, 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(); | 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, | 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, | Status SetOutputsInfo(const ParserUtils::OutputMapping &final_output_nodes, | ||||
const ParserUtils::OutputMapping &tensor_to_nodes); | const ParserUtils::OutputMapping &tensor_to_nodes); | ||||
@@ -90,7 +90,7 @@ domi::Status IfSubgraphAdapter::ParseIfNodeSubgraphs( | |||||
} | } | ||||
domi::Status IfSubgraphAdapter::GetSubgraphsAllInputs(ge::onnx::GraphProto &onnx_graph, | 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_inputs; | ||||
std::set<std::string> graph_outputs; | std::set<std::string> graph_outputs; | ||||
for (int i = 0; i < onnx_graph.node_size(); i++) { | 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, | 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) { | for (const auto &input_name : all_inputs) { | ||||
ge::onnx::ValueInfoProto *value_info = onnx_graph.add_input(); | ge::onnx::ValueInfoProto *value_info = onnx_graph.add_input(); | ||||
value_info->set_name(input_name); | 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, | 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) { | for (const auto &input_name : all_inputs) { | ||||
parent_node.add_input(input_name); | parent_node.add_input(input_name); | ||||
} | } | ||||
@@ -31,9 +31,9 @@ class PARSER_FUNC_VISIBILITY IfSubgraphAdapter : public SubgraphAdapter { | |||||
private: | private: | ||||
domi::Status ParseIfNodeSubgraphs(ge::onnx::NodeProto *parent_node, std::vector<ge::onnx::GraphProto *> &onnx_graphs, | 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); | 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 | } // namespace ge | ||||
@@ -17,7 +17,7 @@ | |||||
#include "subgraph_adapter_factory.h" | #include "subgraph_adapter_factory.h" | ||||
#include "framework/common/debug/ge_log.h" | #include "framework/common/debug/ge_log.h" | ||||
namespace ge{ | |||||
namespace ge { | |||||
SubgraphAdapterFactory* SubgraphAdapterFactory::Instance() { | SubgraphAdapterFactory* SubgraphAdapterFactory::Instance() { | ||||
static SubgraphAdapterFactory instance; | static SubgraphAdapterFactory instance; | ||||
return &instance; | return &instance; | ||||
@@ -78,7 +78,7 @@ string NameMapHelper::UniqueNodeName(const string &name) { | |||||
string NameMapHelper::Renormalize(const string &name) const { | string NameMapHelper::Renormalize(const string &name) const { | ||||
const auto iter = name_mapping_.find(name); | const auto iter = name_mapping_.find(name); | ||||
if (iter == name_mapping_.end()) return string(); | |||||
if (iter == name_mapping_.end()) {return string();} | |||||
return iter->second; | 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()); | 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(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(); | 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_CHK_BOOL_EXEC(fusion_op_desc->AddOutputDesc(src_out_desc) == ge::GRAPH_SUCCESS, return FAILED); | ||||
ge::DataType data_type = src_out_desc.GetDataType(); | 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( | GE_IF_BOOL_EXEC( | ||||
iter == GE_TENSORFLOW_DATA_TYPE_MAP.end(), | iter == GE_TENSORFLOW_DATA_TYPE_MAP.end(), | ||||
REPORT_INNER_ERROR("E19999", "datatype:%d of output:%d in node:%s:%s is not supported", | 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, | return FAILED, | ||||
"Add fusion_op_desc AddInputDesc failed"); | "Add fusion_op_desc AddInputDesc failed"); | ||||
ge::DataType data_type = tensorDescPtr->GetDataType(); | 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( | GE_IF_BOOL_EXEC( | ||||
iter == GE_TENSORFLOW_DATA_TYPE_MAP.end(), | iter == GE_TENSORFLOW_DATA_TYPE_MAP.end(), | ||||
REPORT_INNER_ERROR("E19999", "datatype:%d of input:%d in node:%s:%s is not supported", | 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; | domi::tensorflow::AttrValue output_attr_value; | ||||
if (TensorFlowUtil::FindAttrValue(node, ge::ATTR_NAME_OUTPUT_TENSOR_DESC, output_attr_value)) { | if (TensorFlowUtil::FindAttrValue(node, ge::ATTR_NAME_OUTPUT_TENSOR_DESC, output_attr_value)) { | ||||
GE_CHK_STATUS_RET( | 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 | // 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), | 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()); | "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; | domi::tensorflow::AttrValue output_attr_value; | ||||
if (TensorFlowUtil::FindAttrValue(node, ge::ATTR_NAME_INPUT_TENSOR_DESC, input_attr_value)) { | if (TensorFlowUtil::FindAttrValue(node, ge::ATTR_NAME_INPUT_TENSOR_DESC, input_attr_value)) { | ||||
GE_CHK_STATUS_RET( | 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 { | } else { | ||||
GELOGD("Frameworkop has no input tensor desc, name:%s, type:%s.", node->name().c_str(), type.c_str()); | 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 | /// _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)) { | if (TensorFlowUtil::FindAttrValue(node, ge::ATTR_NAME_OUTPUT_TENSOR_DESC, output_attr_value)) { | ||||
GE_CHK_STATUS_RET( | 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 { | } else { | ||||
GELOGD("Frameworkop has no output tensor desc, name:%s, type:%s.", node->name().c_str(), type.c_str()); | 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 { | namespace ge { | ||||
Status TensorFlowFusionCustomParserAdapter::ParseParams(const vector<const NodeDef *> &v_input_const, | Status TensorFlowFusionCustomParserAdapter::ParseParams(const vector<const NodeDef *> &v_input_const, | ||||
ge::NodePtr &node) { | |||||
ge::NodePtr &node) const { | |||||
GE_CHECK_NOTNULL(node); | GE_CHECK_NOTNULL(node); | ||||
auto op_dest = node->GetOpDesc(); | auto op_dest = node->GetOpDesc(); | ||||
GE_CHECK_NOTNULL(op_dest); | GE_CHECK_NOTNULL(op_dest); | ||||
@@ -31,7 +31,7 @@ class PARSER_FUNC_VISIBILITY TensorFlowFusionCustomParserAdapter : public Tensor | |||||
* @return FAILED parse failed | * @return FAILED parse failed | ||||
* @author | * @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 | * @ingroup domi_parser | ||||
@@ -75,7 +75,7 @@ Status TensorFlowFusionOpParser::GetTensorFromNode(const NodeDef *node_def, Tens | |||||
return SUCCESS; | 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)v_input_const; | ||||
(void)op_dest; | (void)op_dest; | ||||
return SUCCESS; | return SUCCESS; | ||||
@@ -44,7 +44,7 @@ class PARSER_FUNC_VISIBILITY TensorFlowFusionOpParser : public TensorFlowOpParse | |||||
* @return SUCCESS Parsing success | * @return SUCCESS Parsing success | ||||
* @return FAILED Parsing failed | * @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 | * @ingroup domi_omg | ||||
@@ -494,7 +494,7 @@ Status TensorFlowModelParser::AddNode(const domi::tensorflow::NodeDef *node_def, | |||||
// node is released in destructor | // node is released in destructor | ||||
string node_name = node_def->name(); | string node_name = node_def->name(); | ||||
string node_op = node_def->op(); | 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()) { | 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(), | 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()); | 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); | shared_ptr<OpParser> fusion_op_parser = factory->CreateFusionOpParser(op_type); | ||||
GE_CHECK_NOTNULL(fusion_op_parser); | GE_CHECK_NOTNULL(fusion_op_parser); | ||||
// Find all children of the fusion operator | // 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()) { | if (iter == fusion_op_nodedef_map_.end()) { | ||||
REPORT_INNER_ERROR("E19999", "FusionOp node %s has no children node, check invalid", node_name.c_str()); | 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()); | 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 | // 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; | 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 | // Find output and input | ||||
if (input_iter == dest_input_map.end()) { | if (input_iter == dest_input_map.end()) { | ||||
continue; | continue; | ||||
@@ -919,7 +919,7 @@ Status TensorFlowModelParser::ParseNodeDef(TensorFlowModelParser *parser, ge::Co | |||||
return AddScopeInnerNode(parser, graph, graphMutex, node_def); | 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( | GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( | ||||
iterator == parser->adaptedOpTypeMap_.end(), | iterator == parser->adaptedOpTypeMap_.end(), | ||||
REPORT_INNER_ERROR("E19999", "get adapted op type failed, node name = %s", node_name.c_str()); | 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()) { | if (iter == function_name_to_graphdef.end()) { | ||||
ErrorManager::GetInstance().ATCReportErrMessage("E12013", {"functionname"}, {arg.function_name}); | ErrorManager::GetInstance().ATCReportErrMessage("E12013", {"functionname"}, {arg.function_name}); | ||||
GELOGE(FAILED, "Failed to get subgraph by function name %s", arg.function_name.c_str()); | 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; | ge::ScopeFusionOpInfo info; | ||||
if (IsFusionOpChild(op_node_name, &info) && nodedef_map_[op_node_name]->op() != TENSORFLOWF_NODE_OP_CONST) { | if (IsFusionOpChild(op_node_name, &info) && nodedef_map_[op_node_name]->op() != TENSORFLOWF_NODE_OP_CONST) { | ||||
// This node is a fusion operator | // 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()) { | if (fusion_iter == tmp_fusion_op_node_context_map.end()) { | ||||
OpNodeContext op_node_context; | OpNodeContext op_node_context; | ||||
tmp_fusion_op_node_context_map[info.fusion_node_name] = 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); | 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()) { | if (compare_iter != compare_set.end()) { | ||||
// pair<from,to> repeat, ignore | // pair<from,to> repeat, ignore | ||||
continue; | continue; | ||||
@@ -2155,7 +2155,7 @@ void TensorFlowModelParser::SaveEdgesControlInfo(const string &node_name, const | |||||
} | } | ||||
void TensorFlowModelParser::UpdateEdgesControlInfo(const ge::ScopeFusionOpInfo &info) { | 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()) { | if (iter != edges_control_map.end()) { | ||||
// Delete the original fusion operator node information and add the fusion operator control edge information | // Delete the original fusion operator node information and add the fusion operator control edge information | ||||
edges_control_map.erase(iter); | 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."); | return INTERNAL_ERROR, "Can't find op node context."); | ||||
OpNodeContext op_node_context = context_iter->second; | 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( | GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( | ||||
(node_def_iter == nodedef_map.end()), | (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()); | 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, | Status EraseTransposeNode(std::map<std::string, std::string> &softmaxInfo, | ||||
std::map<std::string, DelTransposeInfo> &transposeInfo) { | std::map<std::string, DelTransposeInfo> &transposeInfo) { | ||||
auto itTranspose = transposeInfo.begin(); | |||||
std::map<std::string, DelTransposeInfo>::const_iterator itTranspose = transposeInfo.begin(); | |||||
for (; itTranspose != transposeInfo.end();) { | for (; itTranspose != transposeInfo.end();) { | ||||
// transpose --> softmax | // transpose --> softmax | ||||
bool bErase = true; | bool bErase = true; | ||||
@@ -3144,7 +3144,7 @@ Status TensorFlowModelParser::TrimGraphByInput(const domi::tensorflow::GraphDef | |||||
const ge::ParserContext &ctx = ge::GetParserContext(); | const ge::ParserContext &ctx = ge::GetParserContext(); | ||||
std::map<std::string, std::vector<int64_t>> input_dims = ctx.input_dims; | std::map<std::string, std::vector<int64_t>> input_dims = ctx.input_dims; | ||||
std::vector<int64_t> designated_dims = input_dims.at(node.name()); | 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]); | data_shape->add_dim()->set_size(designated_dims[i]); | ||||
} | } | ||||
google::protobuf::Map<std::string, domi::tensorflow::AttrValue> *attr = placeholder_node.mutable_attr(); | 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(); | const ge::ParserContext &ctx = ge::GetParserContext(); | ||||
std::map<std::string, std::vector<int64_t>> input_dims = ctx.input_dims; | std::map<std::string, std::vector<int64_t>> input_dims = ctx.input_dims; | ||||
std::vector<int64_t> designated_dims = input_dims.at(node.name()); | 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]); | data_shape->add_dim()->set_size(designated_dims[i]); | ||||
} | } | ||||
google::protobuf::Map<std::string, domi::tensorflow::AttrValue> *attr = placeholder_node.mutable_attr(); | 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, | Status TensorFlowModelParser::AddControlEdgeAfterRemoveInputs(domi::tensorflow::GraphDef *graph_def, | ||||
domi::tensorflow::NodeDef *node_def, | domi::tensorflow::NodeDef *node_def, | ||||
const map<string, NodeDef *> &all_node_map, | 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(graph_def); | ||||
GE_CHECK_NOTNULL(node_def); | GE_CHECK_NOTNULL(node_def); | ||||
for (const auto &remove_input : removed_inputs_vec) { | 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, | 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 | // The caller guarantees that the pointer is not null | ||||
auto *inputs = node_def->mutable_input(); | auto *inputs = node_def->mutable_input(); | ||||
google::protobuf::Map<std::string, domi::tensorflow::AttrValue> *attr_map = node_def->mutable_attr(); | 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, | Status AddControlEdgeAfterRemoveInputs(domi::tensorflow::GraphDef *graph_def, | ||||
domi::tensorflow::NodeDef *node_def, | domi::tensorflow::NodeDef *node_def, | ||||
const map<string, NodeDef *> &all_node_map, | 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 | * @ingroup domi_omg | ||||
@@ -74,11 +74,11 @@ Status TensorFlowReshapeParser::ParseParams(const Message *op_src, ge::OpDescPtr | |||||
ge::GeTensorDesc output_desc; | ge::GeTensorDesc output_desc; | ||||
if (TensorFlowUtil::FindAttrValue(node_src, ge::ATTR_NAME_INPUT_TENSOR_DESC, input_attr_value)) { | 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)) { | 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"); | "parse output desc failed"); | ||||
} | } | ||||