AutoMappingByOpFnDynamic
函数功能
动态输入/输出算子的自动映射回调函数。
函数原型
Status AutoMappingByOpFnDynamic(const ge::Operator &op_src, ge::Operator &op,
const vector<DynamicInputOutputInfo> &dynamic_name_attr_value);
参数说明
参数 |
输入/输出 |
说明 |
---|---|---|
op_src |
输入 |
转换前原始模型中的算子,包含原始模型中算子的属性。 关于Operator类,请参见Operator类 |
op |
输入 |
适配昇腾AI处理器的算子。 关于Operator类,请参见Operator类 |
dynamic_name_attr_value |
输入 |
描述动态输入输出实际个数,DynamicInputOutputInfo数据结构请参见DynamicInputOutputInfo数据结构说明。 |
DynamicInputOutputInfo数据结构说明
const int64_t kMaxNameLength = 1048576; // 1M enum DynamicType { kInvalid = 0, kInput = 1, kOutput = 2 }; struct DynamicInputOutputInfo { DynamicType type; const char *port_name; int64_t port_name_len; const char *attr_name; int64_t attr_name_len; DynamicInputOutputInfo() : type(kInvalid), port_name(nullptr), port_name_len(0), attr_name(nullptr), attr_name_len(0) {} DynamicInputOutputInfo(DynamicType type, const char *port_name, int64_t port_name_len, const char *attr_name, int64_t attr_name_len) : type(type), port_name(port_name), port_name_len(port_name_len), attr_name(attr_name), attr_name_len(attr_name_len) {} };
参数 |
说明 |
---|---|
type |
指定是动态输入或输出。 0:无效值 1:输入 2:输出 |
port_name |
端口名字,输入或者输出的Name。 |
port_name_len |
端口名字长度,最大长度为kMaxNameLength |
attr_name |
属性名字。 |
attr_name_len |
属性名字长度,最大长度为kMaxNameLength |
调用示例
Status QueueDequeueUpToMapping(const ge::Operator& op_src, ge::Operator& op) { vector<DynamicInputOutputInfo> dynamic_name_attr_value; string port_name = "components"; string attr_name = "component_types"; DynamicInputOutputInfo name_attr(kOutput, port_name.c_str(), port_name.size(), attr_name.c_str(), attr_name.size()); dynamic_name_attr_value.push_back(name_attr); AutoMappingByOpFnDynamic(op_src, op, dynamic_name_attr_value); return SUCCESS; } REGISTER_CUSTOM_OP("QueueDequeueUpTo") .FrameworkType(TENSORFLOW) .OriginOpType("QueueDequeueUpToV2") .ParseParamsByOperatorFn(QueueDequeueUpToMapping) .ImplyType(ImplyType::AI_CPU);
父主题: OpRegistrationData类