功能说明
通过Tensor数组下标,改变Tensor内容。
函数原型
__setitem__(index, value)
参数说明
表1 参数说明
参数名称 |
输入/输出 |
含义 |
index |
输入 |
Tensor下标,包括如下类型:
- 立即数(int)、Scalar(int、uint)、Expr(int、uint)类型。例如:dataA_UB[100]。
- Slice类型。切片的start、stop、step可以为立即数、Scalar、Expr类型,step目前只支持值为1。例如:dataA_UB[100:]、dataA_UB[100:200:1]
- Tuple类型。多维表示,维度和Tensor维度一致,每一维可以是立即数、Scalar、Expr、Slice类型,维度和维度间以逗号隔开。例如dataA_UB[0,0,0:100]。
|
value |
输入 |
待设置的值。支持的数据类型:
- Scalar类型。
- Expr类型。
- Tensor 类型,要求Tensor 只有一个元素,否则取该Tensor的第一个元素。
- Tesnor的scope有如下约束:
Atlas 200/300/500 推理产品,Tensor的scope 只能是scope_ubuf Atlas 训练系列产品,Tensor的scope 只能是scope_ubuf Atlas推理系列产品AI Core,Tensor的scope可以是scope_ubuf和scope_gm Atlas推理系列产品Vector Core,Tensor的scope可以是scope_ubuf和scope_gm Atlas A2训练系列产品Tensor的scope可以是scope_ubuf和scope_gm Atlas 200I/500 A2推理产品,Tensor的scope可以是scope_ubuf和scope_gm
|
支持的型号
Atlas 200/300/500 推理产品
Atlas 训练系列产品
Atlas推理系列产品AI Core
Atlas推理系列产品Vector Core
Atlas A2训练系列产品
Atlas 200I/500 A2推理产品
注意事项
1.目的Tensor的类型只支持scope_ubuf。
2.只会对目的Tensor的第一个元素进行改变。
3.用户在进行slice操作时,不同scope对齐要求不同,slice的start根据不同scope需要满足如下的要求:
调用示例
from tbe import tik
tik_instance = tik.Tik()
data_A = tik_instance.Tensor("float16", (128,), name="data_A", scope=tik.scope_ubuf)
scalar_B = tik_instance.Scalar(dtype="float16", name="scalar_B", init_value=2.0)
data_A[0] = scalar_B