From 6bc3b0ef31b0fe7efe19d5d73075b8efa7816c6a Mon Sep 17 00:00:00 2001 From: shixingliang Date: Wed, 27 Jan 2021 18:16:39 +0800 Subject: [PATCH] hide character --- inc/external/parser/caffe_parser.h | 18 ++++++++++++++++-- inc/external/parser/onnx_parser.h | 18 ++++++++++++++++-- inc/external/parser/tensorflow_parser.h | 18 ++++++++++++++++-- parser/CMakeLists.txt | 6 ++++++ parser/caffe/caffe_custom_parser_adapter.h | 2 +- parser/caffe/caffe_data_parser.cc | 8 ++++---- parser/caffe/caffe_data_parser.h | 2 +- parser/caffe/caffe_op_parser.h | 16 +++++++++++++++- parser/caffe/caffe_parser.cc | 2 +- parser/caffe/caffe_parser.h | 22 ++++++++++++++++++---- parser/caffe/caffe_reshape_parser.h | 2 +- parser/common/CMakeLists.txt | 4 ++++ parser/onnx/CMakeLists.txt | 8 +++++++- parser/onnx/onnx_constant_parser.h | 2 +- parser/onnx/onnx_custom_parser_adapter.h | 2 +- parser/onnx/onnx_data_parser.cc | 2 +- parser/onnx/onnx_data_parser.h | 2 +- parser/onnx/onnx_op_parser.h | 16 +++++++++++++++- parser/onnx/onnx_parser.h | 22 ++++++++++++++++++---- parser/proto/caffe/CMakeLists.txt | 4 ++++ parser/tensorflow/graph_functiondef.cc | 10 +++++----- parser/tensorflow/graph_functiondef.h | 2 +- .../tensorflow_auto_mapping_parser_adapter.h | 2 +- parser/tensorflow/tensorflow_constant_parser.h | 2 +- .../tensorflow/tensorflow_custom_parser_adapter.h | 2 +- parser/tensorflow/tensorflow_data_parser.cc | 2 +- parser/tensorflow/tensorflow_data_parser.h | 2 +- parser/tensorflow/tensorflow_enter_parser.h | 2 +- .../tensorflow_fusion_custom_parser_adapter.h | 2 +- parser/tensorflow/tensorflow_fusion_op_parser.h | 2 +- parser/tensorflow/tensorflow_identity_parser.h | 2 +- parser/tensorflow/tensorflow_merge_parser.h | 2 +- parser/tensorflow/tensorflow_no_op_parser.h | 2 +- parser/tensorflow/tensorflow_op_parser.h | 16 +++++++++++++++- parser/tensorflow/tensorflow_parser.cc | 4 ++-- parser/tensorflow/tensorflow_parser.h | 16 ++++++++-------- parser/tensorflow/tensorflow_parser_register.h | 10 +++++----- parser/tensorflow/tensorflow_ref_switch_parser.h | 2 +- parser/tensorflow/tensorflow_reshape_parser.h | 2 +- parser/tensorflow/tensorflow_shape_n_parser.h | 2 +- parser/tensorflow/tensorflow_squeeze_parser.h | 2 +- 41 files changed, 198 insertions(+), 66 deletions(-) diff --git a/inc/external/parser/caffe_parser.h b/inc/external/parser/caffe_parser.h index f96dbfd..7819927 100644 --- a/inc/external/parser/caffe_parser.h +++ b/inc/external/parser/caffe_parser.h @@ -17,6 +17,20 @@ #ifndef INC_EXTERNAL_ACL_GRAPH_CAFFE_H_ #define INC_EXTERNAL_ACL_GRAPH_CAFFE_H_ +#if defined(_MSC_VER) +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY _declspec(dllexport) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#else +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY __attribute__((visibility("default"))) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#endif + #include #include #include @@ -27,9 +41,9 @@ #include "graph/types.h" namespace ge { -graphStatus aclgrphParseCaffe(const char *model_file, const char *weights_file, ge::Graph &graph); +PARSER_FUNC_VISIBILITY graphStatus aclgrphParseCaffe(const char *model_file, const char *weights_file, ge::Graph &graph); -graphStatus aclgrphParseCaffe(const char *model_file, const char *weights_file, +PARSER_FUNC_VISIBILITY graphStatus aclgrphParseCaffe(const char *model_file, const char *weights_file, const std::map &parser_params, ge::Graph &graph); } // namespace ge diff --git a/inc/external/parser/onnx_parser.h b/inc/external/parser/onnx_parser.h index 9712d78..2b5e1b8 100644 --- a/inc/external/parser/onnx_parser.h +++ b/inc/external/parser/onnx_parser.h @@ -17,16 +17,30 @@ #ifndef INC_EXTERNAL_PARSER_ONNX_PARSER_H_ #define INC_EXTERNAL_PARSER_ONNX_PARSER_H_ +#if defined(_MSC_VER) +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY _declspec(dllexport) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#else +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY __attribute__((visibility("default"))) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#endif + #include "graph/ascend_string.h" #include "graph/ge_error_codes.h" #include "graph/graph.h" #include "graph/types.h" namespace ge { -graphStatus aclgrphParseONNX(const char *model_file, +PARSER_FUNC_VISIBILITY graphStatus aclgrphParseONNX(const char *model_file, const std::map &parser_params, ge::Graph &graph); -graphStatus aclgrphParseONNXFromMem(const char *buffer, size_t size, +PARSER_FUNC_VISIBILITY graphStatus aclgrphParseONNXFromMem(const char *buffer, size_t size, const std::map &parser_params, ge::Graph &graph); } // namespace ge diff --git a/inc/external/parser/tensorflow_parser.h b/inc/external/parser/tensorflow_parser.h index 3ff4773..036d6f1 100644 --- a/inc/external/parser/tensorflow_parser.h +++ b/inc/external/parser/tensorflow_parser.h @@ -17,6 +17,20 @@ #ifndef INC_EXTERNAL_ACL_PARSER_TENSORFLOW_H_ #define INC_EXTERNAL_ACL_PARSER_TENSORFLOW_H_ +#if defined(_MSC_VER) +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY _declspec(dllexport) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#else +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY __attribute__((visibility("default"))) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#endif + #include #include #include @@ -28,8 +42,8 @@ #include "graph/types.h" namespace ge { -graphStatus aclgrphParseTensorFlow(const char *model_file, ge::Graph &graph); -graphStatus aclgrphParseTensorFlow(const char *model_file, +PARSER_FUNC_VISIBILITY graphStatus aclgrphParseTensorFlow(const char *model_file, ge::Graph &graph); +PARSER_FUNC_VISIBILITY graphStatus aclgrphParseTensorFlow(const char *model_file, const std::map &parser_params, ge::Graph &graph); } // namespace ge diff --git a/parser/CMakeLists.txt b/parser/CMakeLists.txt index 413e96e..4e3d018 100644 --- a/parser/CMakeLists.txt +++ b/parser/CMakeLists.txt @@ -50,12 +50,14 @@ target_compile_options(fmk_parser PRIVATE -Werror -Wno-deprecated-declarations -fno-common + -fvisibility=hidden ) target_compile_definitions(fmk_parser PRIVATE PROTOBUF_INLINE_NOT_IN_HEADERS=0 google=ascend_private $<$:ONLY_COMPILE_OPEN_SRC> + FUNC_VISIBILITY ) target_include_directories(fmk_parser PRIVATE @@ -92,6 +94,10 @@ target_include_directories(fmk_parser PRIVATE ${METADEF_DIR}/third_party/fwkacllib/inc ) +target_link_options(fmk_parser PRIVATE + -Wl,-Bsymbolic +) + target_link_libraries(fmk_parser $ static_mmpa diff --git a/parser/caffe/caffe_custom_parser_adapter.h b/parser/caffe/caffe_custom_parser_adapter.h index da09087..7553421 100644 --- a/parser/caffe/caffe_custom_parser_adapter.h +++ b/parser/caffe/caffe_custom_parser_adapter.h @@ -20,7 +20,7 @@ #include "parser/caffe/caffe_op_parser.h" namespace ge { -class CaffeCustomParserAdapter : public CaffeOpParser { +class PARSER_FUNC_VISIBILITY CaffeCustomParserAdapter : public CaffeOpParser { public: /** * @ingroup domi_omg diff --git a/parser/caffe/caffe_data_parser.cc b/parser/caffe/caffe_data_parser.cc index a155e7a..1611126 100644 --- a/parser/caffe/caffe_data_parser.cc +++ b/parser/caffe/caffe_data_parser.cc @@ -78,7 +78,7 @@ Status CaffeDataParser::ParseParamsForInput(const domi::caffe::LayerParameter *l for (int i = 0; i < input_param.shape_size(); i++) { const domi::caffe::BlobShape &blob_shape = input_param.shape(i); vector shape; - unordered_map> &shape_map = GetParserContext().input_dims; + std::map> &shape_map = GetParserContext().input_dims; std::vector model_dims; for (auto &blob_shape_dim_temp : blob_shape.dim()) { model_dims.push_back(blob_shape_dim_temp); @@ -91,7 +91,7 @@ Status CaffeDataParser::ParseParamsForInput(const domi::caffe::LayerParameter *l } else { // Get from external input const ge::ParserContext &ctx = GetParserContext(); - std::unordered_map> input_dims = ctx.input_dims; + std::map> input_dims = ctx.input_dims; string name = layer->name(); auto search = input_dims.find(name); if (search == input_dims.end()) { @@ -124,7 +124,7 @@ Status CaffeDataParser::ParseParamsForDummyData(const domi::caffe::LayerParamete const domi::caffe::BlobShape &blob_shape = dummy_data_param.shape(i); vector shape; - unordered_map> &shape_map = GetParserContext().input_dims; + std::map> &shape_map = GetParserContext().input_dims; std::vector model_dims; for (auto &blob_shape_dim_temp : blob_shape.dim()) { model_dims.push_back(blob_shape_dim_temp); @@ -138,7 +138,7 @@ Status CaffeDataParser::ParseParamsForDummyData(const domi::caffe::LayerParamete } else { // Get from external input const ge::ParserContext &ctx = GetParserContext(); - std::unordered_map> input_dims = ctx.input_dims; + std::map> input_dims = ctx.input_dims; string name = layer->name(); auto search = input_dims.find(name); if (search == input_dims.end()) { diff --git a/parser/caffe/caffe_data_parser.h b/parser/caffe/caffe_data_parser.h index ee5f7ad..f9dae07 100644 --- a/parser/caffe/caffe_data_parser.h +++ b/parser/caffe/caffe_data_parser.h @@ -23,7 +23,7 @@ #include "parser/common/data_op_parser.h" namespace ge { -class CaffeDataParser : public CaffeOpParser, public DataOpParser { +class PARSER_FUNC_VISIBILITY CaffeDataParser : public CaffeOpParser, public DataOpParser { public: /** * @ingroup domi_omg diff --git a/parser/caffe/caffe_op_parser.h b/parser/caffe/caffe_op_parser.h index 9fa5921..27b34c9 100644 --- a/parser/caffe/caffe_op_parser.h +++ b/parser/caffe/caffe_op_parser.h @@ -17,6 +17,20 @@ #ifndef PARSER_CAFFE_CAFFE_OP_PARSER_H_ #define PARSER_CAFFE_CAFFE_OP_PARSER_H_ +#if defined(_MSC_VER) +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY _declspec(dllexport) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#else +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY __attribute__((visibility("default"))) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#endif + #include #include "graph/debug/ge_attr_define.h" #include "common/util.h" @@ -54,7 +68,7 @@ namespace ge { * @ingroup ge_omg * @brief Used to parse Caffe operator information */ -class CaffeOpParser : public OpParser { +class PARSER_FUNC_VISIBILITY CaffeOpParser : public OpParser { public: Status ParseParams(const Message *op_src, ge::OpDescPtr &op_dest) override; diff --git a/parser/caffe/caffe_parser.cc b/parser/caffe/caffe_parser.cc index f94b071..148b5d2 100644 --- a/parser/caffe/caffe_parser.cc +++ b/parser/caffe/caffe_parser.cc @@ -330,7 +330,7 @@ Status CaffeModelParser::ParseInput(domi::caffe::NetParameter &proto_message, bo } } else { const ge::ParserContext &ctx = ge::GetParserContext(); - std::unordered_map> input_dims = ctx.input_dims; + std::map> input_dims = ctx.input_dims; for (int i = 0; i < proto_message.input_size(); i++) { string name = proto_message.input(i); if (input_dims.count(name) == 0) { // Input defined by model does not exist in input of external input diff --git a/parser/caffe/caffe_parser.h b/parser/caffe/caffe_parser.h index b210555..6df68e2 100644 --- a/parser/caffe/caffe_parser.h +++ b/parser/caffe/caffe_parser.h @@ -17,6 +17,20 @@ #ifndef PARSER_CAFFE_CAFFE_PARSER_H_ #define PARSER_CAFFE_CAFFE_PARSER_H_ +#if defined(_MSC_VER) +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY _declspec(dllexport) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#else +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY __attribute__((visibility("default"))) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#endif + #include #include #include @@ -39,7 +53,7 @@ using std::unordered_map; using std::vector; static std::map, std::vector> params_share_map; -class CaffeModelParser : public domi::ModelParser { +class PARSER_FUNC_VISIBILITY CaffeModelParser : public domi::ModelParser { public: CaffeModelParser() {} virtual ~CaffeModelParser() {} @@ -362,10 +376,10 @@ class CaffeModelParser : public domi::ModelParser { std::map node_map; // key: blob name, value: layer name and index - std::unordered_map>> bottom_blobs_map_; + std::map>> bottom_blobs_map_; // key: blob name, value: layer name and index - std::unordered_map>> top_blobs_map_; + std::map>> top_blobs_map_; std::vector custom_operator_; std::map> layer_tops_map_; @@ -375,7 +389,7 @@ class CaffeModelParser : public domi::ModelParser { * @ingroup domi_omg * @brief Caffe weight parser */ -class CaffeWeightsParser : public domi::WeightsParser { +class PARSER_FUNC_VISIBILITY CaffeWeightsParser : public domi::WeightsParser { public: /** * @ingroup domi_omg diff --git a/parser/caffe/caffe_reshape_parser.h b/parser/caffe/caffe_reshape_parser.h index 9051f77..764f9f8 100644 --- a/parser/caffe/caffe_reshape_parser.h +++ b/parser/caffe/caffe_reshape_parser.h @@ -20,7 +20,7 @@ #include "parser/caffe/caffe_op_parser.h" namespace ge { -class CaffeReshapeParser : public CaffeOpParser { +class PARSER_FUNC_VISIBILITY CaffeReshapeParser : public CaffeOpParser { public: /** * @ingroup domi_omg diff --git a/parser/common/CMakeLists.txt b/parser/common/CMakeLists.txt index cf22fee..c15d455 100644 --- a/parser/common/CMakeLists.txt +++ b/parser/common/CMakeLists.txt @@ -74,6 +74,10 @@ target_include_directories(parser_common PRIVATE ${METADEF_DIR}/third_party/fwkacllib/inc ) +target_link_options(parser_common PRIVATE + -Wl,-Bsymbolic +) + target_link_libraries(parser_common PRIVATE $ static_mmpa diff --git a/parser/onnx/CMakeLists.txt b/parser/onnx/CMakeLists.txt index fd91d3a..65cabae 100644 --- a/parser/onnx/CMakeLists.txt +++ b/parser/onnx/CMakeLists.txt @@ -20,11 +20,13 @@ target_compile_options(fmk_onnx_parser PRIVATE -Werror -Wno-deprecated-declarations -fno-common + -fvisibility=hidden ) target_compile_definitions(fmk_onnx_parser PRIVATE PROTOBUF_INLINE_NOT_IN_HEADERS=0 google=ascend_private + FUNC_VISIBILITY ) target_include_directories(fmk_onnx_parser PRIVATE @@ -62,6 +64,10 @@ target_include_directories(fmk_onnx_parser PRIVATE ${METADEF_DIR}/third_party/fwkacllib/inc ) +target_link_options(fmk_onnx_parser PRIVATE + -Wl,-Bsymbolic +) + target_link_libraries(fmk_onnx_parser PRIVATE $ static_mmpa @@ -69,7 +75,7 @@ target_link_libraries(fmk_onnx_parser PRIVATE ascend_protobuf register c_sec - parser_common + parser_common graph slog -Wl,--as-needed diff --git a/parser/onnx/onnx_constant_parser.h b/parser/onnx/onnx_constant_parser.h index cfaafac..5df6564 100644 --- a/parser/onnx/onnx_constant_parser.h +++ b/parser/onnx/onnx_constant_parser.h @@ -24,7 +24,7 @@ using ge::onnx::NodeProto; namespace ge { -class OnnxConstantParser : public OnnxOpParser { +class PARSER_FUNC_VISIBILITY OnnxConstantParser : public OnnxOpParser { public: Status ParseParams(const Message *op_src, ge::Operator &op_def) override; diff --git a/parser/onnx/onnx_custom_parser_adapter.h b/parser/onnx/onnx_custom_parser_adapter.h index fbbdb2f..1e5f147 100644 --- a/parser/onnx/onnx_custom_parser_adapter.h +++ b/parser/onnx/onnx_custom_parser_adapter.h @@ -20,7 +20,7 @@ #include "parser/onnx/onnx_op_parser.h" namespace ge { -class OnnxCustomParserAdapter : public OnnxOpParser { +class PARSER_FUNC_VISIBILITY OnnxCustomParserAdapter : public OnnxOpParser { public: /// @brief Parsing model file information /// @param [in] op_src model data to be parsed diff --git a/parser/onnx/onnx_data_parser.cc b/parser/onnx/onnx_data_parser.cc index 7b396b7..442f08d 100644 --- a/parser/onnx/onnx_data_parser.cc +++ b/parser/onnx/onnx_data_parser.cc @@ -94,7 +94,7 @@ Status OnnxDataParser::ParseInputFromModel(const Message *op_src, ge::Operator & } Status OnnxDataParser::ParseInputFromUser(const ge::Operator &op_def) { - std::unordered_map> input_dims = GetParserContext().input_dims; + std::map> input_dims = GetParserContext().input_dims; // User not designate the input_shape std::string name = op_def.GetName(); if (input_dims.count(name) == 0) { diff --git a/parser/onnx/onnx_data_parser.h b/parser/onnx/onnx_data_parser.h index ca68b1d..9650af6 100644 --- a/parser/onnx/onnx_data_parser.h +++ b/parser/onnx/onnx_data_parser.h @@ -23,7 +23,7 @@ #include "parser/onnx/onnx_op_parser.h" namespace ge { -class OnnxDataParser : public OnnxOpParser { +class PARSER_FUNC_VISIBILITY OnnxDataParser : public OnnxOpParser { public: Status ParseParams(const Message *op_src, ge::Operator &op_def) override; diff --git a/parser/onnx/onnx_op_parser.h b/parser/onnx/onnx_op_parser.h index a986f5d..df84961 100644 --- a/parser/onnx/onnx_op_parser.h +++ b/parser/onnx/onnx_op_parser.h @@ -17,6 +17,20 @@ #ifndef GE_PARSER_ONNX_ONNX_OP_PARSER_H_ #define GE_PARSER_ONNX_ONNX_OP_PARSER_H_ +#if defined(_MSC_VER) +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY _declspec(dllexport) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#else +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY __attribute__((visibility("default"))) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#endif + #include #include #include "framework/common/op/attr_value_util.h" @@ -28,7 +42,7 @@ using Status = domi::Status; namespace ge { -class OnnxOpParser : public OpParser { +class PARSER_FUNC_VISIBILITY OnnxOpParser : public OpParser { public: /// @brief parse params /// @param [in] op_src op to be parsed diff --git a/parser/onnx/onnx_parser.h b/parser/onnx/onnx_parser.h index 2d7b765..9c9eeee 100644 --- a/parser/onnx/onnx_parser.h +++ b/parser/onnx/onnx_parser.h @@ -17,6 +17,20 @@ #ifndef PARSER_ONNX_ONNX_PARSER_H_ #define PARSER_ONNX_ONNX_PARSER_H_ +#if defined(_MSC_VER) +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY _declspec(dllexport) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#else +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY __attribute__((visibility("default"))) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#endif + #include #include #include @@ -27,7 +41,7 @@ #include "proto/onnx/ge_onnx.pb.h" namespace ge { -class OnnxModelParser : public domi::ModelParser { +class PARSER_FUNC_VISIBILITY OnnxModelParser : public domi::ModelParser { public: OnnxModelParser() {} virtual ~OnnxModelParser() {} @@ -96,12 +110,12 @@ class OnnxModelParser : public domi::ModelParser { std::vector input_node_names_; - std::unordered_map>> inputs_map_; + std::map>> inputs_map_; - std::unordered_map>> outputs_map_; + std::map>> outputs_map_; }; -class OnnxWeightsParser : public domi::WeightsParser { +class PARSER_FUNC_VISIBILITY OnnxWeightsParser : public domi::WeightsParser { public: Status Parse(const char *file, ge::Graph &graph) override { return domi::SUCCESS; } diff --git a/parser/proto/caffe/CMakeLists.txt b/parser/proto/caffe/CMakeLists.txt index 8cdfd4d..118c3bb 100644 --- a/parser/proto/caffe/CMakeLists.txt +++ b/parser/proto/caffe/CMakeLists.txt @@ -15,6 +15,10 @@ target_include_directories(_caffe_parser PRIVATE ${CMAKE_CURRENT_LIST_DIR} ) +target_link_options(_caffe_parser PRIVATE + -Wl,-Bsymbolic +) + target_link_libraries(_caffe_parser PRIVATE $ -Wl,--no-as-needed diff --git a/parser/tensorflow/graph_functiondef.cc b/parser/tensorflow/graph_functiondef.cc index 0a242f8..6f5bbb5 100644 --- a/parser/tensorflow/graph_functiondef.cc +++ b/parser/tensorflow/graph_functiondef.cc @@ -112,7 +112,7 @@ domi::Status ComputeArgRange(const domi::tensorflow::NodeDef &node_def, const do return SUCCESS; } -using NameRangeMap = std::unordered_map>; +using NameRangeMap = std::map>; domi::Status NameRangesHelper(const domi::tensorflow::NodeDef &node_def, const google::protobuf::RepeatedPtrField &args, @@ -136,8 +136,8 @@ domi::Status NameRangesForNode(const domi::tensorflow::NodeDef &node_def, const } domi::Status RemapFunctionDef(FunctionDef *fdef, const string &name, NameMapHelper &node_names, - std::unordered_map &tensor_renaming, - std::unordered_map &return_values) { + std::map &tensor_renaming, + std::map &return_values) { GE_CHECK_NOTNULL(fdef); // Detect missing function inputs.. for (int i = 0; i < fdef->signature().input_arg_size(); ++i) { @@ -324,8 +324,8 @@ domi::Status GraphToFunctionDef::DavGraphToFunctionDef(ge::ComputeGraphPtr graph GE_CHECK_NOTNULL(fdef); fdef->mutable_signature()->set_name(name); - std::unordered_map tensor_renaming; - std::unordered_map return_values; + std::map tensor_renaming; + std::map return_values; NameMapHelper node_names; for (const ge::NodePtr &node : graph->GetDirectNode()) { diff --git a/parser/tensorflow/graph_functiondef.h b/parser/tensorflow/graph_functiondef.h index bf1bb26..08b18d1 100644 --- a/parser/tensorflow/graph_functiondef.h +++ b/parser/tensorflow/graph_functiondef.h @@ -83,7 +83,7 @@ class NameMapHelper { string GetUniqueName(const string &name); std::set used_names_; - std::unordered_map name_mapping_; + std::map name_mapping_; }; } // namespace ge diff --git a/parser/tensorflow/tensorflow_auto_mapping_parser_adapter.h b/parser/tensorflow/tensorflow_auto_mapping_parser_adapter.h index 3afea84..9b4cf52 100644 --- a/parser/tensorflow/tensorflow_auto_mapping_parser_adapter.h +++ b/parser/tensorflow/tensorflow_auto_mapping_parser_adapter.h @@ -20,7 +20,7 @@ #include "parser/tensorflow/tensorflow_op_parser.h" namespace ge { -class TensorFlowAutoMappingParserAdapter : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowAutoMappingParserAdapter : public TensorFlowOpParser { public: Status ParseParams(const Message *op_src, ge::OpDescPtr &op_dest) override; }; diff --git a/parser/tensorflow/tensorflow_constant_parser.h b/parser/tensorflow/tensorflow_constant_parser.h index 319c845..02c3e65 100644 --- a/parser/tensorflow/tensorflow_constant_parser.h +++ b/parser/tensorflow/tensorflow_constant_parser.h @@ -25,7 +25,7 @@ using domi::tensorflow::NodeDef; namespace ge { -class TensorFlowConstantParser : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowConstantParser : public TensorFlowOpParser { public: Status ParseParams(const Message *op_src, ge::OpDescPtr &op_dest) override; diff --git a/parser/tensorflow/tensorflow_custom_parser_adapter.h b/parser/tensorflow/tensorflow_custom_parser_adapter.h index 3653718..1b85845 100644 --- a/parser/tensorflow/tensorflow_custom_parser_adapter.h +++ b/parser/tensorflow/tensorflow_custom_parser_adapter.h @@ -20,7 +20,7 @@ #include "parser/tensorflow/tensorflow_op_parser.h" namespace ge { -class TensorFlowCustomParserAdapter : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowCustomParserAdapter : public TensorFlowOpParser { public: /** * @ingroup domi_omg diff --git a/parser/tensorflow/tensorflow_data_parser.cc b/parser/tensorflow/tensorflow_data_parser.cc index e2839e9..378d4d2 100644 --- a/parser/tensorflow/tensorflow_data_parser.cc +++ b/parser/tensorflow/tensorflow_data_parser.cc @@ -102,7 +102,7 @@ Status TensorFlowDataParser::ParseInputFromUser(const Message *op_src, const ge: GE_CHECK_NOTNULL(op_def); (void)op_src; const ge::ParserContext &ctx = GetParserContext(); - std::unordered_map> input_dims = ctx.input_dims; + std::map> input_dims = ctx.input_dims; // User not designate the input_shape std::string name = op_def->GetName(); if (input_dims.count(name) == 0) { diff --git a/parser/tensorflow/tensorflow_data_parser.h b/parser/tensorflow/tensorflow_data_parser.h index baea90e..ed9b4cc 100644 --- a/parser/tensorflow/tensorflow_data_parser.h +++ b/parser/tensorflow/tensorflow_data_parser.h @@ -23,7 +23,7 @@ #include "parser/tensorflow/tensorflow_op_parser.h" namespace ge { -class TensorFlowDataParser : public TensorFlowOpParser, public DataOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowDataParser : public TensorFlowOpParser, public DataOpParser { public: /** * @ingroup domi_omg diff --git a/parser/tensorflow/tensorflow_enter_parser.h b/parser/tensorflow/tensorflow_enter_parser.h index 5f78e41..2e9ed32 100644 --- a/parser/tensorflow/tensorflow_enter_parser.h +++ b/parser/tensorflow/tensorflow_enter_parser.h @@ -20,7 +20,7 @@ #include "parser/tensorflow/tensorflow_op_parser.h" namespace ge { -class TensorFlowEnterParser : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowEnterParser : public TensorFlowOpParser { public: Status ParseParams(const Message *op_src, ge::OpDescPtr &op_desc) override; }; diff --git a/parser/tensorflow/tensorflow_fusion_custom_parser_adapter.h b/parser/tensorflow/tensorflow_fusion_custom_parser_adapter.h index 9243ca5..2662af3 100644 --- a/parser/tensorflow/tensorflow_fusion_custom_parser_adapter.h +++ b/parser/tensorflow/tensorflow_fusion_custom_parser_adapter.h @@ -20,7 +20,7 @@ #include "parser/tensorflow/tensorflow_fusion_op_parser.h" namespace ge { -class TensorFlowFusionCustomParserAdapter : public TensorFlowFusionOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowFusionCustomParserAdapter : public TensorFlowFusionOpParser { public: /** * @ingroup domi_parser diff --git a/parser/tensorflow/tensorflow_fusion_op_parser.h b/parser/tensorflow/tensorflow_fusion_op_parser.h index 251bb4a..caf17b2 100644 --- a/parser/tensorflow/tensorflow_fusion_op_parser.h +++ b/parser/tensorflow/tensorflow_fusion_op_parser.h @@ -37,7 +37,7 @@ namespace ge { * @ingroup domi_omg * @brief Used to parse TensorFlow operator information */ -class TensorFlowFusionOpParser : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowFusionOpParser : public TensorFlowOpParser { public: /** * @ingroup domi_omg diff --git a/parser/tensorflow/tensorflow_identity_parser.h b/parser/tensorflow/tensorflow_identity_parser.h index 0b4a342..6aa9962 100644 --- a/parser/tensorflow/tensorflow_identity_parser.h +++ b/parser/tensorflow/tensorflow_identity_parser.h @@ -20,7 +20,7 @@ #include "parser/tensorflow/tensorflow_op_parser.h" namespace ge { -class TensorFlowIdentityParser : public TensorFlowOpParser {}; +class PARSER_FUNC_VISIBILITY TensorFlowIdentityParser : public TensorFlowOpParser {}; } // namespace ge #endif // GE_PARSER_TENSORFLOW_TENSORFLOW_IDENTITY_H_ diff --git a/parser/tensorflow/tensorflow_merge_parser.h b/parser/tensorflow/tensorflow_merge_parser.h index e5f9a35..19ddfb1 100644 --- a/parser/tensorflow/tensorflow_merge_parser.h +++ b/parser/tensorflow/tensorflow_merge_parser.h @@ -20,7 +20,7 @@ #include "parser/tensorflow/tensorflow_op_parser.h" namespace ge { -class TensorFlowMergeParser : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowMergeParser : public TensorFlowOpParser { public: Status ParseParams(const Message *op_src, ge::OpDescPtr &op_desc) override; }; diff --git a/parser/tensorflow/tensorflow_no_op_parser.h b/parser/tensorflow/tensorflow_no_op_parser.h index de78fbc..1107104 100644 --- a/parser/tensorflow/tensorflow_no_op_parser.h +++ b/parser/tensorflow/tensorflow_no_op_parser.h @@ -20,7 +20,7 @@ #include "parser/tensorflow/tensorflow_op_parser.h" namespace ge { -class TensorFlowNoOpParser : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowNoOpParser : public TensorFlowOpParser { // AUTO GEN PLEASE DO NOT MODIFY IT public: Status ParseParams(const Message *op_src, ge::OpDescPtr &op_dest) override; diff --git a/parser/tensorflow/tensorflow_op_parser.h b/parser/tensorflow/tensorflow_op_parser.h index 983597b..130843b 100644 --- a/parser/tensorflow/tensorflow_op_parser.h +++ b/parser/tensorflow/tensorflow_op_parser.h @@ -17,6 +17,20 @@ #ifndef OMG_PARSER_TENSORFLOW_TENSORFLOW_OP_PARSER_H_ #define OMG_PARSER_TENSORFLOW_TENSORFLOW_OP_PARSER_H_ +#if defined(_MSC_VER) +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY _declspec(dllexport) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#else +#ifdef FUNC_VISIBILITY +#define PARSER_FUNC_VISIBILITY __attribute__((visibility("default"))) +#else +#define PARSER_FUNC_VISIBILITY +#endif +#endif + #include #include #include "framework/common/op/attr_value_util.h" @@ -52,7 +66,7 @@ namespace ge { * @ingroup domi_omg * @brief used to parse TensorFlow operator information */ -class TensorFlowOpParser : public OpParser { +class PARSER_FUNC_VISIBILITY TensorFlowOpParser : public OpParser { public: /** diff --git a/parser/tensorflow/tensorflow_parser.cc b/parser/tensorflow/tensorflow_parser.cc index c532d15..6761722 100644 --- a/parser/tensorflow/tensorflow_parser.cc +++ b/parser/tensorflow/tensorflow_parser.cc @@ -2962,7 +2962,7 @@ Status TensorFlowModelParser::TrimGraphByInput(const domi::tensorflow::GraphDef TensorShapeProto *data_shape = attr_value.mutable_shape(); GE_CHECK_NOTNULL(data_shape); const ge::ParserContext &ctx = ge::GetParserContext(); - std::unordered_map> input_dims = ctx.input_dims; + std::map> input_dims = ctx.input_dims; std::vector designated_dims = input_dims.at(node.name()); for (int32_t i = 0; i < (int32_t)designated_dims.size(); i++) { data_shape->add_dim()->set_size(designated_dims[i]); @@ -3035,7 +3035,7 @@ Status TensorFlowModelParser::TrimGraphByOutput(const domi::tensorflow::GraphDef TensorShapeProto *data_shape = attr_value.mutable_shape(); GE_CHECK_NOTNULL(data_shape); const ge::ParserContext &ctx = ge::GetParserContext(); - std::unordered_map> input_dims = ctx.input_dims; + std::map> input_dims = ctx.input_dims; std::vector designated_dims = input_dims.at(node.name()); for (int32_t i = 0; i < (int32_t)designated_dims.size(); i++) { data_shape->add_dim()->set_size(designated_dims[i]); diff --git a/parser/tensorflow/tensorflow_parser.h b/parser/tensorflow/tensorflow_parser.h index 718a77e..88e51d5 100644 --- a/parser/tensorflow/tensorflow_parser.h +++ b/parser/tensorflow/tensorflow_parser.h @@ -74,7 +74,7 @@ struct OpNodeContext { }; struct DelTransposeInfo; -class TensorFlowModelParser : public domi::ModelParser { +class PARSER_FUNC_VISIBILITY TensorFlowModelParser : public domi::ModelParser { public: TensorFlowModelParser() {} virtual ~TensorFlowModelParser() {} @@ -649,15 +649,15 @@ class TensorFlowModelParser : public domi::ModelParser { /** * save */ - unordered_map> fusion_op_nodedef_map_; + map> fusion_op_nodedef_map_; // Policy types of fusion operators,true:scope_pass match,false:prefix match - unordered_map fusion_op_policy_; + map fusion_op_policy_; // The names of all children operators and the description of fusion operators unordered_map fusion_op_children_; /** * save */ - unordered_map> fusion_op_type_map_; + map> fusion_op_type_map_; /** * save nodedef of the fusion operator */ @@ -665,17 +665,17 @@ class TensorFlowModelParser : public domi::ModelParser { /** * control edge,{Key=NodeName,Value=index} */ - unordered_map> edges_control_map; + map> edges_control_map; unordered_map framework_ops_; /** * save */ - unordered_map adaptedOpTypeMap_; + map adaptedOpTypeMap_; // { node_name <{input_node_name}, {output_node_name}> } - unordered_map, set>> node_inputs_outputs_map_; + map, set>> node_inputs_outputs_map_; unordered_map scope_inner_node_map_; }; @@ -684,7 +684,7 @@ class TensorFlowModelParser : public domi::ModelParser { * @ingroup domi_omg * @brief Tensorflow weight parse */ -class TensorFlowWeightsParser : public domi::WeightsParser { +class PARSER_FUNC_VISIBILITY TensorFlowWeightsParser : public domi::WeightsParser { public: /** * @ingroup domi_omg diff --git a/parser/tensorflow/tensorflow_parser_register.h b/parser/tensorflow/tensorflow_parser_register.h index 17a2368..4abbd00 100644 --- a/parser/tensorflow/tensorflow_parser_register.h +++ b/parser/tensorflow/tensorflow_parser_register.h @@ -33,13 +33,13 @@ using domi::tensorflow::NodeDef; namespace ge { -class TensorflowFinalizeable { +class PARSER_FUNC_VISIBILITY TensorflowFinalizeable { public: virtual bool Finalize() = 0; virtual ~TensorflowFinalizeable() {} }; -class TensorflowReceiver { +class PARSER_FUNC_VISIBILITY TensorflowReceiver { public: TensorflowReceiver(TensorflowFinalizeable &f) { f.Finalize(); } ~TensorflowReceiver() {} @@ -49,7 +49,7 @@ namespace tensorflow_parser { template class TensorflowParserBuilder; -class TensorflowWeightParserBuilder : public TensorflowFinalizeable { +class PARSER_FUNC_VISIBILITY TensorflowWeightParserBuilder : public TensorflowFinalizeable { public: virtual ~TensorflowWeightParserBuilder() {} }; @@ -58,7 +58,7 @@ template class TensorflowOpParserAdapter; template -class TensorflowParserBuilder : public TensorflowWeightParserBuilder { +class PARSER_FUNC_VISIBILITY TensorflowParserBuilder : public TensorflowWeightParserBuilder { public: using ParseParamsFn = std::function; @@ -91,7 +91,7 @@ class TensorflowParserBuilder : public TensorflowWeightParserBuilder { }; template -class TensorflowOpParserAdapter : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorflowOpParserAdapter : public TensorFlowOpParser { using ParseParamsFn = std::function; public: diff --git a/parser/tensorflow/tensorflow_ref_switch_parser.h b/parser/tensorflow/tensorflow_ref_switch_parser.h index 723ebfc..d053e99 100644 --- a/parser/tensorflow/tensorflow_ref_switch_parser.h +++ b/parser/tensorflow/tensorflow_ref_switch_parser.h @@ -23,7 +23,7 @@ using domi::tensorflow::NodeDef; namespace ge { -class TensorFlowRefSwitchParser : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowRefSwitchParser : public TensorFlowOpParser { // AUTO GEN PLEASE DO NOT MODIFY IT public: /** diff --git a/parser/tensorflow/tensorflow_reshape_parser.h b/parser/tensorflow/tensorflow_reshape_parser.h index 975982a..d945822 100644 --- a/parser/tensorflow/tensorflow_reshape_parser.h +++ b/parser/tensorflow/tensorflow_reshape_parser.h @@ -20,7 +20,7 @@ #include "parser/tensorflow/tensorflow_op_parser.h" namespace ge { -class TensorFlowReshapeParser : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowReshapeParser : public TensorFlowOpParser { private: Status ParseDesc(const domi::tensorflow::AttrValue &attr_value, ge::GeTensorDesc &ge_desc); diff --git a/parser/tensorflow/tensorflow_shape_n_parser.h b/parser/tensorflow/tensorflow_shape_n_parser.h index 0447262..bd90111 100644 --- a/parser/tensorflow/tensorflow_shape_n_parser.h +++ b/parser/tensorflow/tensorflow_shape_n_parser.h @@ -23,7 +23,7 @@ using domi::tensorflow::NodeDef; namespace ge { -class TensorFlowShapeNParser : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowShapeNParser : public TensorFlowOpParser { // AUTO GEN PLEASE DO NOT MODIFY IT public: Status ParseParams(const Message *op_src, ge::OpDescPtr &op_dest) override; diff --git a/parser/tensorflow/tensorflow_squeeze_parser.h b/parser/tensorflow/tensorflow_squeeze_parser.h index a621c5e..71edc43 100644 --- a/parser/tensorflow/tensorflow_squeeze_parser.h +++ b/parser/tensorflow/tensorflow_squeeze_parser.h @@ -20,7 +20,7 @@ #include "parser/tensorflow/tensorflow_op_parser.h" namespace ge { -class TensorFlowSqueezeParser : public TensorFlowOpParser { +class PARSER_FUNC_VISIBILITY TensorFlowSqueezeParser : public TensorFlowOpParser { public: Status ParseParams(const Message *op_src, ge::OpDescPtr &op_dest) override;