SetValueOperation
功能
实现将输入src中的内容拷贝到输入dst指定位置中的功能。
例如:dst: (a,b,c), src: (d,e,f)
dst[starts[0]: ends[0], starts[1]: ends[1], starts[2]: ends[2]] = src
其中,starts[0]: ends[0]长度为src第0维的维度大小,starts[1]: ends[1]长度为src第1维的维度大小,starts[2]: ends[2]长度为src第2维的维度大小。
约束
- 输入src和输入dst的维数须相同。
- 输入src的各维度大小要求小于或等于输入dst对应维度大小。
- 输入src和输入dst的各维度要求有一个或两个维度不相同,且需要满足:
- 如果有一个维度不相同,则这个维度不能是最高维(第0维)。
- 如果有两个维度不相同,则其中一个不同的维度必须是最高维(第0维)。
定义
struct SetValueParam { SVector<int64_t> starts; SVector<int64_t> ends; SVector<int64_t> strides; };
成员
成员名称 |
描述 |
---|---|
starts |
每个轴的start。 |
ends |
每个轴的end。 |
strides |
拷贝时步长,当前仅支持strides为全1。 |
输入
参数 |
维度 |
数据类型 |
格式 |
---|---|---|---|
src |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/float/int32/int64 |
ND |
dst |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/float/int32/int64 |
ND |
输出
参数 |
维度 |
数据类型 |
格式 |
---|---|---|---|
dst |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/float/int32/int64 |
ND |

输出dst与同名输入指向同一地址,即进行原地修改。