/** * Copyright 2020 Huawei Technologies Co., Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "attr_options.h" #include #include "graph/debug/ge_attr_define.h" #include "common/util/error_manager/error_manager.h" namespace ge { namespace { const std::string CFG_PRE_OPTYPE = "OpType::"; } bool IsOriginalOpFind(OpDescPtr &op_desc, const std::string &op_name) { std::string attrOp = op_name; std::vector original_op_names; bool istype = IsContainOpType(op_name, attrOp); if (!istype) { if (!AttrUtils::GetListStr(op_desc, ATTR_NAME_DATA_DUMP_ORIGIN_OP_NAMES, original_op_names)) { return false; } } else { if (!AttrUtils::GetListStr(op_desc, ATTR_NAME_DATA_DUMP_ORIGIN_DATA_TYPE, original_op_names)) { return false; } } for (auto &origin_name : original_op_names) { if (origin_name == attrOp) { return true; } } return false; } bool IsContainOpType(const std::string &cfg_line, std::string &op_type) { op_type = cfg_line; size_t pos = op_type.find(CFG_PRE_OPTYPE); if (pos != std::string::npos) { op_type = cfg_line.substr(pos+CFG_PRE_OPTYPE.length()); return true; } return false; } } // namespace ge