Scalar
功能说明
定义Scalar变量。
函数原型
Scalar(dtype="int64", name="reg_buf", init_value=None)
参数说明
参数名称 |
输入/输出 |
含义 |
---|---|---|
dtype |
输入 |
指定Scalar对象的数据类型,取值: int8,uint8,int16, uint16,float16,int32,uint32,float32, int64, uint64 默认值:int64 |
name |
输入 |
Scalar名字,支持string类型。名字支持数字0-9,A-Z,a-z及下划线组成的字符串,不允许以数字开头 默认值:reg_buf$(COUNT), COUNT从零开始计数。 |
init_value |
输入 |
初始化值: 可以是立即数(支持int, float类型)、 Scalar变量(支持int, float类型)、 Tensor的某个值、 Expr:包括Scalar变量、立即数组成的Expr。
须知:
如果是Expr,立即数不能是float。 |
支持的型号
Atlas 200/300/500 推理产品
Atlas 训练系列产品
Atlas推理系列产品AI Core
Atlas推理系列产品Vector Core
Atlas A2训练系列产品/Atlas 800I A2推理产品
Atlas 200/500 A2推理产品
注意事项
1、当初始化值是Expr时,立即数不能是float类型,只能是整数型。例如:
from tbe import tik tik_instance = tik.Tik() index_reg = tik_instance.Scalar(dtype="float32") #立即数:float index_reg.set_as(10.2) #通过init_value对scalar赋初始值 index_reg1 = tik_instance.Scalar(dtype="float32", init_value=10.2) index_reg2 = tik_instance.Scalar(dtype="float32") #Expr,立即数为float,ccec编译错误,硬件不支持。 #index_reg2.set_as(index_reg + 2.2)
2、不建议直接使用默认的int64数据类型,应根据实际Scalar需要确定数据类型。
3、当dtype为bfloat16时,不支持算数运算,例如:加减乘除、左右位移、大小比较。
返回值
Scalar类的实例。
调用示例
from tbe import tik tik_instance = tik.Tik() #立即数:整数 index_reg = tik_instance.Scalar(dtype = "int32") index_reg.set_as(10) #立即数:float index_reg2 = tik_instance.Scalar(dtype = "float16") index_reg2.set_as(10.2) #Scalar变量 index_reg3 = tik_instance.Scalar(dtype = "float16") index_reg3.set_as(index_reg2) #Tensor某个值 data_A = tik_instance.Tensor("float16", (128,), name="data_A", scope=tik.scope_ubuf) index_reg3.set_as(data_A[0])//tensor的某个值 #Expr index_reg4 = tik_instance.Scalar(dtype = "int32") index_reg4.set_as(index_reg + 20)
父主题: 数据定义