文档
注册

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);
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词