ReduceOperation
功能
在指定维度上求和、取最大值或最小值,并消除这个维度。
计算公式
- REDUCE_MAX:
相当于pytorch中
intensor.amax(axis)
- 示例1
x shape: [2,3], axis: [0]
x: tensor([[ 1, 18, 17], [16, 10, 1]]) output: tensor([16, 18, 17])
- 示例2
x shape: [2,3,2], axis: [0,1]
x: tensor([[[17, 3], [19, 6], [ 1, 18]], [[ 4, 5], [ 8, 1], [14, 18]]]) output: tensor([19, 18])
- 示例1
- REDUCE_MIN:
相当于pytorch中
intensor.amin(axis)
- 示例1
x shape: [2,3], axis: [0]
x: tensor([[16, 2, 7], [18, 16, 17]]) output: tensor([16, 2, 7])
- 示例2
x shape: [2,3,2], axis: [0,1]
x: tensor([[[ 9, 4], [11, 0], [ 2, 6]], [[ 2, 7], [ 8, 16], [ 5, 3]]]) output: tensor([2, 0])
- 示例1
- REDUCE_SUM:
相当于pytorch中
torch.sum(intensor, axis)
- 示例1
x shape: [2,3], axis: [0]
x: tensor([[-0.9701, -0.8059, 0.2919], [-0.1444, -2.3023, 1.2257]]) output: tensor([-1.1145, -3.1082, 1.5176])
- 示例2
x shape: [2,3,2], axis: [0,1]
x: tensor([[[ 1.4630, -0.3619], [-0.4526, -1.0142], [-0.2883, 0.9334]], [[ 0.7801, -0.1580], [ 0.4843, 1.8145], [ 0.9706, -1.8114]]]) output: tensor([ 2.9571, -0.5976])
- 示例1
定义
struct ReduceParam { enum ReduceType { REDUCE_UNDEFINED = 0, REDUCE_MAX, REDUCE_MIN, REDUCE_SUM, }; ReduceType reduceType = REDUCE_UNDEFINED; SVector<int64_t> axis; };
参数列表
成员名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
reduceType |
ReduceType |
REDUCE_UNDEFINED |
计算类型,支持以下参数:
|
axis |
SVector<int64_t> |
{} |
指定轴(维度)。
|
输入
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
x |
[dim_0,dim_1,... ,dim_n] |
|
ND |
输入tensor。 |
输出
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
output |
基于输入“x”的维度,消除axis要求的维度。 |
|
ND |
输出tensor。 |
规格约束
- axis不能为空且长度要求小于等于输入x的维度。
- axis中各元素要求小于x的维度且大于等于0。
- reduceType必须是REDUCE_MAX、REDUCE_MIN或REDUCE_SUM。