更新时间:2021-03-18 GMT+08:00
分享

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

输入

-

算子属性的值,根据不同类型指定默认值,支持的属性类型包括:

  • AttrValue::INT,属性类型为int64_t
  • AttrValue::FLOAT, 属性类型为float
  • AttrValue::STR,属性类型为string
  • AttrValue::BOOL,属性类型为bool
  • AttrValue::TENSOR,属性类型为Tensor
  • AttrValue::LIST_INT,属性类型为vector<int64_t>, int64_t列表
  • AttrValue::LIST_FLOAT, 属性类型为vector<float>, float列表
  • AttrValue::LIST_STR,属性类型为vector<string>,string列表
  • AttrValue::LIST_BOOL,属性类型为vector<bool>,bool列表
  • AttrValue::LIST_TENSOR,属性类型为vector<Tensor>,Tensor列表

返回值

无。

异常处理

无。

约束说明

对于同一个算子,注册的算子属性名称需保持唯一,不能重复。

分享:

    相关文档

    相关产品