AI常用算子列表
1
Abs
求绝对值
【输入】
input:输入Tensor,float32
【约束】
无限制
【输出】
output:输出Tensor
2
Acos
反余弦
【输入】
input:输入Tensor,数值范围[-1, 1],类型:float32
【约束】
无限制
【输出】
output:输出Tensor,数值范围[0, pi],类型与x输入相同
3
Add
二元点加
【输入】
A:输入Tensor,类型:float32,第1个操作数
B:输入Tensor,类型:float32,第2个操作数
【约束】
支持两组输入的维度不一致,进行广播操作(广播即维度补齐),目前支持以下几种广播场景:
NCHW+NCHW(备注, 两个维度相同tensor)
NCHW+scalar
NCHW+W, CHW+W, HW+W(备注, W维度做broadcast)
NCHW + NCH1, CHW + CH1, HW + H1
CHW + C1W(备注,H维度做broadcast)
对于两个输入维度个数不相同的场景,需要将维度补齐到四维。例如,x.shape=(1, 5, 6, 7) 和 y.shape=(6, 7)需要将y的维度补齐到4维,即y.shape=(1, 1, 6, 7)。
说明:两个Tensor的输入顺序可以互换。
【输出】
C:输出Tensor,类型同B
4
And
取与运算
【输入】
A:输入Tensor,类型:bool
B:输入Tensor,类型:bool
【约束】
input输入不支持NCHW格式数据
【输出】
output:输出Tensor,类型:bool
5
ArgMax
在指定轴上找到最大值索引
【输入】
data:输入Tensor,类型:float32
【参数】
axis:int,default值为0,取值范围[-r, r-1],r = rank(data)
keepdims:int,default值为1
【输出】
output:输出Tensor,类型:int64
6
Asin
反正弦
【输入】
input:输入Tensor,数值范围[-1, 1],类型:float32
【约束】
无限制
【输出】
output:输出Tensor,数值范围[-pi/2, pi/2],类型与input输入相同
7
Atan
反正切
【输入】
input:输入Tensor,类型:float32
【约束】
无限制
【输出】
output:输出Tensor,类型与input输入相同
8
AveragePool
平均池化
【输入】
X:输入Tensor,类型:float32
【参数】
auto_pad:optional, string,pad的计算模式,默认是NOTSET
ceil_mode:optional, int,使用ceil(向上取整)还是floor(向下取整)计算输出维度,默认是0(ceil)
count_include_pad:optional,int,计算边缘时是否包含pad,默认是0,不包含pad
kernel_shape:list of ints,每个值对应相应维度的窗口大小
pads:list of ints,每个值对应相应维度的pad值,默认值为0
strides:list of ints,其中每个值对应相应维度的滑动步长,默认值为1
【约束】
auto_pad参数不支持SAME_UPPER,SAME_LOWER
count_include_pad参数只支持默认值
【输出】
Y:输出Tensor,类型与X输入相同
9
BatchNormalization
对输入做标准化
【输入】
X:输入Tensor,类型:float32
scale:输入Tensor,类型:float32,用于缩放
B:输入Tensor,类型:float32,偏差
mean:输入Tensor,类型:float32,用于推理总体均值
var:输入Tensor,类型:float32,用于推理总体方差
training_mode:输入Tensor,optional,训练模式
【参数】
epsilon:float32,在X的方差中添加的一个小的浮点数,默认值是1e-05
momentum:float32,计算mean和var的因子,默认值为0.9
spatial:int,计算mean和var的方式,默认值1
【约束】
不支持训练场景
不支持training_mode输入
不支持output_mean、output_var、saved_mean、saved_var输出
opset7中不支持spatial设置
【输出】
Y:输出Tensor,和X输入有相同的维度
output_mean:训练模式下是滑动均值,非训练模式下是估计均值
output_var:训练模式下是滑动方差,非训练模式下是估计方差
saved_mean:已保存的均值
saved_var:已保存的均值
10
Cast
数据类型转换
【输入】
input:输入Tensor,类型:float32,bool,int32,uint8
【参数】
to:数据类型int
FLOAT = 1
UINT8 = 2
INT8 = 3
UINT16 = 4
INT16 = 5
INT32 = 6
INT64 = 7
STRING = 8
BOOL = 9
FLOAT16 = 10
DOUBLE = 11
UINT32 = 12
【约束】
支持下面类型转换:
fp16 -> fp32
fp32 -> fp16
u8 -> fp16
fp16 -> u8
int32 -> fp32
fp32->int32
fp16 -> int8
int8 -> fp16
in32 -> fp16
fp16 -> int32
bool -> fp16
fp16 -> bool
【输出】
output:输出Tensor
11
Ceil
向上取值
【输入】
X:输入Tensor,类型:float32
【约束】
无
【输出】
output:输出Tensor,类型与input输入相同
12
Clip
将输入限制在一个区间中
【输入】
input:输入Tensor,类型:float32
min:Scalar Tensor,optional,类型:float32,区间最小值
max:Scalar Tensor,optional,类型:float32,区间最大值
【参数】
在opset 7~10中min和max是参数
【约束】
min输入必须是常量
max输入必须是常量
【输出】
output:输出Tensor,类型与input输入相同
13
Concat
数据按维度拼接
【输入】
inputs:List of tensors,类型:float32,int32
【参数】
axis:int,轴参数,控制需要拼接的数据轴,负值表示从维度最后一位往前数
【约束】
无
【输出】
concat_result:拼接之后的Tensor,类型:float32,int32
14
Constant
输出1个常量Tensor
【输入】
无
【参数】
sparse_value:稀疏类型的输出值
value:Tensor,输出Tensor的值
value_float:float32类型的标量输出Tensor的值
value_floats:list of floats,float32类型的1D输出Tensor的值
value_int:int,int32类型的标量输出Tensor的值
value_ints:list of ints,int32类型的1D输出Tensor的值
value_string:string,string类型的标量UTF-8输出Tensor的值
value_strings:list of strings,string类型的1D UTF-8输出Tensor的值
【约束】
不支持sparse_value参数
不支持value_string参数
不支持value_strings参数
【输出】
output:输出Tensor,和提供的Tensor具有相同的值
15
ConstantOfShape
根据给定的值和维度,生成1个Tensor
【输入】
input:1-D Tensor,类型:int32,uint8
【参数】
value:optional,0-D Tensor,需要填充的值,默认为0,默认类型float32
【约束】
无
【输出】
output:输出Tensor,类型同value
16
Conv
卷积
【输入】
X:输入Tensor,类型:float32
W:输入Tensor,具有维度(M * C/group * kH * kW),其中C是channels的数量,kH和kW是卷积核的高和宽,M是feature maps的数量
B:optional,1D 常量Tensor,卷积计算时添加的偏置
【参数】
auto_pad:optional, string,pad的计算模式,默认是NOTSET
dilations:optional,list of ints,每个值对应卷积核对应空间轴上的扩张值,默认值1
group:optional,int,组的数量
kernel_shape:list of ints,卷积核的维度
pads:list of ints,每个值对应相应维度的pad值
list of ints,每个值对应相应维度的滑动步长,默认值为1
【约束】
auto_pad参数不支持SAME_UPPER, SAME_LOWER
【输出】
Y:输出Tensor,类型同X
17
ConvTranspose
反卷积
【输入】
X:输入Tensor,类型:float32
W:输入Tensor,具有维度(M * C/group * kH * kW),其中C是channels的数量,kH和kW是卷积核的高和宽,M是feature maps的数量
B:optional,1D 常量Tensor,卷积计算时添加的偏置
【参数】
auto_pad:optional, string,pad的计算模式,默认是NOTSET
dilations:optional,list of ints,每个值对应卷积核对应空间轴上的扩张值,默认值1
group:optional,int,组的数量
kernel_shape:list of ints,卷积核的维度
output_padding:为输出坐标指数较高的边添加的额外值
output_shape:输出的shape
pads:list of ints,每个值对应相应维度的pad值
list of ints,每个值对应相应维度的滑动步长,默认值为1
【约束】
auto_pad参数不支持SAME_UPPER, SAME_LOWER
output_padding参数不支持
W输入必须为常量
【输出】
Y:输出Tensor,类型同X输入
18
Cos
计算余弦
【输入】
input:输入Tensor,类型:float32
【约束】
无限制
【输出】
output:输出Tensor,类型与x输入相同
19
DepthToSpace
重组数据,根据blocksize
【输入】
input:输入Tensor,类型:float32
【参数】
blocksize:数据类型:int
mode: 数据类型 string
【约束】
mode仅支持DCR CRD两种模式
【输出】
output:输出Tensor,类型与x输入相同
20
Div
做除法运算
【输入】
A:输入Tensor,类型:float32,int32
B:输入Tensor,类型:float32,int32
【约束】
对于两个输入维度个数不相同的场景,需要将维度补齐到四维。例如,x.shape=(1, 5, 6, 7) 和 y.shape=(6, 7)需要将y的维度补齐到4维,即y.shape=(1, 1, 6, 7)。
【输出】
C:输出Tensor,类型与x输入相同
21
Elu
根据f(x) = alpha * (exp(x) - 1.) 该公式做计算
【输入】
X:输入Tensor,类型:float32
【参数】
alpha:float32,缺省值为1.0
【约束】
无
【输出】
Y:输出Tensor,类型与x输入相同
22
Equal
判断输入是否相等
【输入】
A:输入Tensor,类型:uint8,float32,bool,int32(int32只支持标量)
B:输入Tensor,类型:uint8,float32,bool,int32(int32只支持标量)
【约束】
暂不支持广播场景
【输出】
C:输出Tensor,类型 bool
23
Erf
对输入数据逐个元素做error function计算
【输入】
x:输入Tensor,类型:float32
【约束】
无限制
【输出】
y:输出Tensor,类型与x输入相同
24
Exp
指数函数,output = e^input
【输入】
input:输入Tensor,类型:float32,double
【约束】
无限制
【输出】
output:输出Tensor,类型与x输入相同
25
Expand
根据指定的shape做广播
【输入】
input:输入Tensor,类型:float32,int8, uint8, bool
shape:输入Tensor,类型:int32,1D的tensor,指定输出的shape
【约束】
支持任意满足broadcast条件的Broadcast场景
对于需要插broadcastTo算子的Add、Sub、Mul、Div、Max,不支持量化功能
支持在Kirin 9000及以后的芯片上运行
【输出】
output:输出Tensor,类型与x输入相同
26
Flatten
数据按维度展开
【输入】
input:输入 Tensor,类型float32
【参数】
axis:int,标识数据在哪个维度上展开,值的范围[-r, r],r是输入Tensor的维度个数,负值表示从最后1个维度往回计算
【约束】
axis参数必须为1
【输出】
output:2-D Tensor,类型float32
27
Floor
对输入进行向下取整
【输入】
X:输入Tensor,类型:float32
【约束】
无
【输出】
Y:输出Tensor,类型同X输入
28
Gather
根据输入的indices,从data中获取entry组成输出tensor
【输入】
data:输入Tensor,类型:float32, int32
indices:输入Tensor,数据类型int32
【参数】
axis:int, [-r, r-1] ,r = rank(data)
【约束】
无
【输出】
output:输出Tensor,类型同data输入
29
Gemm
通用矩阵乘法,
Y = alpha * A' * B' + beta * C
【输入】
A:输入Tensor,类型:float32
B:输入Tensor,类型:float32
C:输入Tensor,类型:float32
【参数】
alpha:float32,A * B的标量乘数,默认值1.0
beta:float32,C的标量乘数,默认值1.0
transA:int,A输入是否需要转置,默认值0
transB:int,B输入是否需要转置,默认值0
【约束】
transA参数不支持true
输入B和C只支持常量
如果A是M*K,B是K*N,C可以是N或1*N或不指定
【输出】
Y:输出Tensor,维度是(M, N)
30
GlobalAveragePool
对输入进行全局平均池化
【输入】
X:输入Tensor,类型:float32,维度是(N * C * H * W)
【约束】
无
【输出】
Y:输出Tensor,类型同X输入
31
GlobalMaxPool
对输入进行全局最大池化
【输入】
X:输入Tensor,类型float32,维度是(N * C * H * W)
【约束】
无
【输出】
Y:输出Tensor,类型同X输入
32
Greater
逐个元素比较哪个大
【输入】
A:输入Tensor,类型float32,
B:输入Tensor,类型float32,
【约束】
无
【输出】
C:输出Tensor,类型 bool
33
InstanceNormalization
按照下面公式做归一化运算
y = scale * (x - mean) / sqrt(variance + epsilon) + B
【输入】
input:输入4D Tensor,类型float32,
scale:输入Tensor,类型float32,
B:输入Tensor,类型float32,
【参数】
alpha:float32,避免除零错误,默认值1e-05
【约束】
无
【输出】
output:输出Tensor,类型同input输入
34
LeakyRelu
对输入进行LeakyRelu激活函数计算
f(x) = alpha * x for x < 0, f(x) = x for x >= 0
【输入】
X:输入Tensor,类型:float32
【参数】
alpha:float32,泄漏系数,默认值0.01
【约束】
无
【输出】
Y:输出Tensor,类型同X输入
35
Less
对输入A和B进行逐元素Less逻辑运算
【输入】
A:输入Tensor,类型:float32
B:输入Tensor,类型:float32
【约束】
无限制
【输出】
C:输出Tensor,类型:bool
36
Log
取自然对数运算
【输入】
input:输入Tensor,类型: float32
【约束】
无
【输出】
output:输出Tensor,类型同input输入
37
LogSoftmax
对输入进行logsoftmax(log of softmax)计算
【输入】
input:输入Tensor,类型:float32
【参数】
axis:int,输入变为2D维度时的轴,默认值1
【约束】
axis参数仅支持最后一维
【输出】
output:输出Tensor,维度和输入相同
38
MatMul
矩阵乘
【输入】
A:输入Tensor,类型:float32
B:输入Tensor,类型:float32
【约束】
A: 输入tensor,2<=rank<=4
B: 输入tensor,类型与rank同A
【输出】
Y:输出Tensor,类型:float32
39
Max
逐个元素取最大值
【输入】
X1:输入Tensor,类型:float32
X2:输入Tensor,类型:float32
【约束】
对于两个输入维度个数不相同的场景,需要将维度补齐到四维。例如,x.shape=(1, 5, 6, 7) 和 y.shape=(6, 7)需要将y的维度补齐到4维,即y.shape=(1, 1, 6, 7);Kirin 9000平台下,已经支持broadcast;1<=N <= 65535
只支持2个输入
【输出】
y:输出Tensor,类型:float32
40
MaxPool
最大池化
【输入】
X:输入Tensor,类型:float32
【参数】
auto_pad:optional, string,pad的计算模式,默认是NOTSET
ceil_mode:optional, int,使用ceil(向上取整)还是floor(向下取整)计算输出维度,默认值0(ceil)
dilations:optional,list of ints,每个值对应池化核对应空间轴上的扩张值,默认值1
kernel_shape:list of ints,每个值对应相应维度的窗口大小
pads:list of ints,每个值对应相应维度的pad值,默认值为0
storage_order:int,Tensor的存储顺序,默认值0,按行存储
strides:list of ints,其中每个值对应相应维度的滑动步长,默认值为1
【约束】
auto_pad参数只支持默认值
storage_order参数只支持默认值
dilations参数只支持默认值
Indices可选输出不支持
【输出】
Y:输出Tensor,类型与X输入相同
Indices:optional,输出Tensor
41
Min
逐个元素取最小
【输入】
X1:输入Tensor,类型:float32, int32
X2:输入Tensor,类型:float32,int32
【约束】
5D输入不支持常量广播
只支持2个输入
【输出】
y:输出Tensor,类型与Xn输入相同
42
Mul
二元点乘
【输入】
A:输入Tensor,类型:float32,第1个操作数
B:输入Tensor,类型:float32,第2个操作数
【约束】
支持两组输入的维度不一致,进行广播操作(广播即维度补齐),目前支持以下几种广播场景:
NCHW+NCHW(备注, 两个维度相同tensor)
NCHW+scalar
NCHW+W, CHW+W, HW+W(备注, W维度做broadcast)
NCHW + NCH1, CHW + CH1, HW + H1
CHW + C1W(备注,H维度做broadcast)
对于两个输入维度个数不相同的场景,需要将维度补齐到四维。例如,x.shape=(1, 5, 6, 7) 和 y.shape=(6, 7)需要将y的维度补齐到4维,即y.shape=(1, 1, 6, 7)。
说明:两个Tensor的输入顺序可以互换。
【输出】
C:输出Tensor,类型同B
43
Neg
对Tensor的每个元素取反,y=-x
【输入】
X:输入Tensor,类型:float32
【约束】
无
【输出】
Y:输出Tensor,类型:float32
44
NonMaxSuppression
进行非最大值压缩在指定框中
【输入】
boxes:输入Tensor,类型:float32
scores:输入Tensor,类型:float32
max_output_boxes_per_class(可选):输入Tensor,类型:int32
iou_threshold(可选):输入Tensor,类型:float32
score_threshold(可选):输入Tensor,类型:float32
【约束】
max_output_boxes_per_class、iou_threshold、score_threshold仅支持权值输入
max_output_boxes_per_class不支持取0
iou_threshold不支持取0和1
【输出】
selected_indices:输出Tensor,类型:float32
45
Or
对输入Tensor的每个元素取逻辑或
【输入】
A:输入Tensor,类型:bool
B:输入Tensor,类型:bool
【约束】
input输入不支持NCHW格式数据
【输出】
C:输出Tensor,类型:bool
46
PRelu
根据下面公式做运算
f(x) = slope * x for x < 0, f(x) = x for x >= 0
【输入】
X:输入Tensor,类型:float32
slope:输入Tensor,类型:float32
【约束】
slope输入必须是常量
slope必须是标量或者1C11或C11的形式,其中C是X输入的channel
X输入必须是4D
【输出】
Y:输出Tensor,类型同X输入
47
Pad
对输入Tensor做补pad处理
【输入】
data:输入Tensor,类型:float32
pads:输入Tensor,类型:int64
constant_value:optional,输入Tensor,标量,类型同data输入,默认值0
【参数】
mode:string,支持的模式
在opset 7~10中pads输入是参数
在opset 7~10中存在value参数,表示要被填充的值
【约束】
mode仅支持constant模式
pads输入必须是常量
【输出】
output:输出Tensor,类型:float32
48
Pow
逐个元素做指数运算
【输入】
X:输入Tensor,类型:float32, int32
Y:输入Tensor,类型:float32, int32
【约束】
无限制
【输出】
Z:输出Tensor,类型:float32, int32
49
Range
创建一个Tensor,Tensor的数据以start开始,以delta作为步长扩展直到limit
【输入】
start:输入Tensor,标量,类型:float32,int32,输出数据的起始值
limit:输入Tensor,标量,类型:float32,int32,输出数据的上限值
delta:输入Tensor,标量,类型:float32,int32,步长
【约束】
输入start必须是常量
输入limit必须是常量
输入delta必须是常量
【输出】
output:输出Tensor,标量,类型float32,int32
50
ReduceLogSumExp
计算输入Tensor沿着指定轴上的对数和的指数
【输入】
data:输入Tensor,类型:float32
【参数】
axes:list of ints,指定的轴
keepdims:ints,是否保留指定轴上的维度,默认值是1
【约束】
无
【输出】
reduced:输出Tensor
51
ReduceMax
计算输入Tensor沿着指定轴上的最大值
【输入】
data:输入Tensor,类型:float32
【参数】
axes:list of ints,指定的轴
keepdims:ints,是否保留指定轴上的维度,如果是1,保留,如果是0,则不保留,默认值是1
【约束】
axes参数为必选参数
【输出】
reduced:输出Tensor
52
ReduceMean
计算输入Tensor沿着指定轴上的平均值
【输入】
data:输入Tensor,类型:float32
【参数】
axes:list of ints,指定的轴
keepdims:ints,是否保留指定轴上的维度,如果是1,保留,如果是0,则不保留,默认值是1
【约束】
axes参数为必选参数
【输出】
reduced:输出Tensor
53
ReduceMin
计算输入Tensor沿着指定轴上的最小值
【输入】
data:输入Tensor,类型:float32
【参数】
axes:list of ints,指定的轴
keepdims:int,是否保留维度,默认值1
【约束】
axes参数为必选参数
keepdims参数仅支持设置为1
【输出】
reduced:输出Tensor
54
ReduceSum
计算输入Tensor沿着指定轴上的和
【输入】
data:输入Tensor,类型:float32
【参数】
axes:list of ints,指定的轴
keepdims:int,是否保留维度,默认值1
【约束】
axes参数为必选参数
【输出】
reduced:输出Tensor
55
Relu
整流线性单位函数
【输入】
X:输入Tensor,类型:float32
【约束】
无
【输出】
Y:输出Tensor,类型同X输入
56
Reshape
改变输入Tensor的维度
【输入】
data:输入Tensor,类型:float32,int32,int64,bool
shape:输入Tensor,类型:int32,int64
【约束】
shape输入必须是常量
【输出】
reshaped:输出Tensor,类型同data输入
57
Resize
调整输入tensor的维度
【输入】
X:输入Tensor,类型:float32
roi:输入Tensor,类型:float32
【参数】
align_corners:bool,缺省值为false
half_pixel_centers:bool,缺省值为false
【约束】
scales和sizes两个输入仅支持权值输入,不支持非权值输入
coordinate_transformation_mode支持half_pixel,pytorch_half_pixel。其中pytorch_half_pixel仅支持resized_length>1场景,resized_length <=1场景报错
cubic_coeff_a仅支持默认值-0.75
exclude_outside仅支持默认值0
extrapolation_value仅支持默认值:0.0
mode 支持nearest, linear
nearest_mode仅支持默认值round_prefer_floor
不支持crop功能
roi是无效输入时,仅支持权值输入
其他场景报错处理
【输出】
Y:输出Tensor,类型同data输入
58
RoiAlign
对关注的区域做对齐操作
【输入】
X:输入Tensor,类型:float32
roi:输入Tensor,类型:int32
batch_indices:输入Tensor,类型:int32
【参数】
mode:string,缺省值为avg
output_height:int32,缺省值为1
output_width:int32,缺省值为1
sampling_ratio:int32,缺省值为1
spatial_scale:float32,缺省值为1.0
【约束】
mode仅支持avg模式
【输出】
Y:输出Tensor,类型同X输入
59
Round
逐个元素取整
【输入】
X:输入Tensor,类型:float32
【约束】
无限制
【输出】
Y:输出Tensor,类型同X输入
60
ScatterElements
绘制散点图
【输入】
data:输入Tensor,类型:float32, int8, uint8, bool
indices:输入Tensor,类型:int32, int64
updates:输入Tensor,类型:float32, int8, uint8, bool
【参数】
axis:int,缺省值为0
【约束】
无
【输出】
output:输出Tensor,类型同data输入
61
Selu
对输入做下面公式计算
y = gamma * (alpha * e^x - alpha) for x <= 0, y = gamma * x for x > 0
【输入】
x:输入Tensor,类型:float32
【参数】
alpha:float32,缺省值为1.67326
gamma:float32,缺省值为1.0507
【约束】
仅支持alpha和gamma参数是默认值
【输出】
y:输出Tensor,类型同x输入
62
Shape
获取输入Tensor的维度,并输出
【输入】
data:输入Tensor,类型:float32,int32,bool,uint8
【约束】
不支持指定为输出节点
【输出】
shape:输出Tensor,data输入的维度
63
Sigmoid
sigmoid函数,y = 1 / (1 + exp(-x))
【输入】
X:输入Tensor,类型:float32
【约束】
无
【输出】
Y:输出Tensor,类型同X输入
64
Sign
sign函数(符号函数),
当x>0,sign(x)=1
当x=0,sign(x)=0
当x<0,sign(x)=-1
【输入】
input:输入Tensor,类型:float32
【约束】
无
【输出】
output:输出Tensor,类型和维度同input输入
65
Sin
计算正弦
【输入】
input:输入Tensor,类型:float32
【约束】
无限制
【输出】
output:输出Tensor,类型与x输入相同
66
Slice
对输入Tensor沿着指定轴切分
【输入】
data:输入Tensor,类型:float32,int32,uint8,bool
starts:1-D输入Tensor,类型:int64,int32,表示在指定轴上切分的起始位置
ends:1-D输入Tensor,类型:int64,int32,表示在指定轴上切分的结束位置
axes:optional,1-D输入Tensor,类型:int64,int32,指定需要切分的轴,缺省表示沿所有的维度切分,负值表示从后往前统计维度值
steps:optional,1-D输入Tensor,类型:int64,int32,切分的步长
【参数】
opset9及之前版本,axes,ends,starts是参数
【约束】
输入starts,ends,axes,steps必须为常量
不支持切分后,存在维度为0的场景
【输出】
output:输出Tensor,切分后的Tensor
67
Softmax
归一化逻辑函数
【输入】
input:输入Tensor,类型:float32
【参数】
axis:int,输入变为2D维度时的轴,默认值1
【约束】
axis参数仅支持最后一维
【输出】
output:输出Tensor,类型和维度同input输入
68
Softplus
softplus激活函数,y = ln(exp(x) + 1)
【输入】
X:1-D输入Tensor,类型:float32
【约束】
无
【输出】
Y:1-D输出Tensor,类型同X输入
69
Split
在指定轴上做拆分,输出多个tensor
【输入】
input:输入Tensor,类型: float32
【参数】
axis:int, 缺省值为0
split: list of ints 值必须大于等于0
【约束】
无
【输出】
outputs:D输出Tensor,类型同输入
70
Sqrt
求平方根
【输入】
X:输入Tensor,类型:float32
【约束】
无
【输出】
Y:输出Tensor,类型同X输入
71
Squeeze
在指定轴上降维
【输入】
data:输入Tensor,类型:float32
【参数】
axes:list of ints,轴,缺省值为所有维度,负值表示从后往前遍历
【约束】
无
【输出】
squeezed:输出Tensor,类型:float32
72
Sub
逐个元素的减法运算
【输入】
A:输入Tensor,类型:float32 ,第1个操作数
B:输入Tensor,类型:float32 ,第2个操作数
【约束】
无
【输出】
C:输出Tensor,类型:float32
73
Tan
正切函数
【输入】
input:输入Tensor,类型:float32
【约束】
无
【输出】
output:输出Tensor,类型:float32
74
Tanh
双曲函数
【输入】
input:输入Tensor,类型:float32
【约束】
无
【输出】
output:输出Tensor,类型:float32
75
Tile
对输入Tensor做平铺操作
【输入】
input:输入Tensor,类型:float32,int8,uint8,bool
repeats:1-D输入Tensor,类型:int32, int64
【约束】
repeats输入必须是常量
【输出】
output:输出Tensor,类型同input输入
76
TopK
实现最大或者最小的K个元素在指定的轴上。
【输入】
X:输入Tensor,类型:float32
K:输入Tensor,类型:int32, int64
【参数】
axis:int,缺省值为-1
largest:int,缺省值为1
sorted:int,缺省值为1
【约束】
K输入必须是常量
【输出】
values:输出Tensor,类型:float32
indices: 输出Tensor,类型:int32
77
Transpose
根据属性perm中各个轴的排列顺序,对输入Tensor和shape做相应转换
【输入】
data:输入Tensor,类型:float32
【参数】
perm:list of ints,轴调整排列的顺序表
【约束】
无
【输出】
transposed:输出Tensor,类型:float32
78
Unsqueeze
在指定轴上扩维
【输入】
data:输入Tensor,类型:float32,int32,uint8,bool
【参数】
axes:list of ints,指定需要扩维的轴
【约束】
仅支持axes个数为1
【输出】
expanded:输出Tensor,类型:float32,int32,uint8,bool
79
Upsample
上采样
【输入】
X:输入Tensor,类型:float32
scales:输入Tensor,类型:float32
【参数】
mode:string,模式,有2个插值模式,nearest模式和linear模式(包含bilinear, trilinear等),默认是nearest模式
在opset7中scales输入是参数
【约束】
仅支持nearest、bilinear两种插值模式
X仅支持4D输入Tensor
N、C方向的scale仅支持等于1.0
【输出】
Y:输出Tensor,类型:float32
80
ReduceL2
(V510新增)
计算输入Tensor沿着指定轴上的欧几里得范数
【输入】
data:输入Tensor,类型:float32
【参数】
axes:list of ints,指定的轴
keepdims:int,是否保留维度,默认值1
【约束】
只支持keepdims=1的情形,所以输入和输出的realDim相等
输入N <= 65535
axes范围:支持realDim为3和realDim为4时对最后一维做reduceL2
【输出】
reduced:输出Tensor