ATTR
函数原型
ATTR(x, default_value)
功能说明
注册算子属性,必须指定默认值,用户不设置算子对象的属性值时使用默认值。
注册算子属性成功后,自动生成算子属性的3个对外接口,用于获取属性的名称、获取属性的值、设置属性的值。
现以注册类型为int64_t的属性、类型为int64_t列表两种场景为例,说明所生成的算子属性接口:
- 调用ATTR(mode, AttrValue::INT{1})接口,注册属性mode,属性类型为int64_t,默认值为1。
注册属性成功后,自动生成以下接口:
static const string name_attr_mode(); // 返回属性的名称,即“mode” int64_t get_attr_mode() const; // 返回mode属性的值 _THIS_TYPE& set_attr_mode(int64_t v); // 设置mode属性的值,返回算子对象本身
- 调用ATTR(pad, AttrValue::LIST_INT{0, 0, 0, 0})接口,注册属性pad,属性类型为int64_t列表,默认值为{0,0,0,0}。
注册属性成功后,自动生成以下接口:
static const string name_attr_pad(); // 返回属性的名称,即“pad” vector<int64_t> get_attr_pad() const; ; // 返回属性pad的值 _THIS_TYPE& set_attr_pad(vector<int64_t> v); // 设置属性pad的值,返回算子对象本身
参数说明
参数名 |
输入/输出 |
类型 |
描述 |
---|---|---|---|
x |
输入 |
- |
宏参数,算子属性的名称。 |
default_value |
输入 |
- |
算子属性的值,根据不同类型指定默认值,支持的属性类型包括:
|
返回值
无。
异常处理
无。
约束说明
对于同一个算子,注册的算子属性名称需保持唯一,不能重复。