ONNX算子简介

详细英文介绍见ONNX算子

(算子较多,善用Ctrl+F查找)

序号算子含义参数
1Abs求绝对值【输入】input:输入Tensor,float32
【约束】无限制
【输出】**output:输出Tensor
2Acos反余弦【输入】input:输入Tensor,数值范围[-1, 1],类型:float32
【约束】无限制
【输出】**output:输出Tensor,数值范围[0, pi],类型与x输入相同
3Add二元点加【输入】

- 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
4And取与运算【输入】

- A:输入Tensor,类型:bool
- B:输入Tensor,类型:bool

【约束】input输入不支持NCHW格式数据
【输出】
output:输出Tensor,类型:bool
5ArgMax在指定轴上找到最大值索引【输入】data:输入Tensor,类型:float32
【参数】
- axis:int,default值为0,取值范围[-r, r-1],r = rank(data)
- keepdims:int,default值为1

【输出】**output:输出Tensor,类型:int64
6Asin反正弦【输入】input:输入Tensor,数值范围[-1, 1],类型:float32

【约束】
无限制

【输出】
output:输出Tensor,数值范围[-pi/2, pi/2],类型与input输入相同
7Atan反正切【输入】input:输入Tensor,类型:float32

【约束】
无限制

【输出】
output:输出Tensor,类型与input输入相同
8AveragePool平均池化【输入】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输入相同
9BatchNormalization对输入做标准化【输入】

- 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:已保存的均值
10Cast数据类型转换【输入】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
11Ceil向上取值【输入】X:输入Tensor,类型:float32

【约束】


【输出】
output:输出Tensor,类型与input输入相同
12Clip将输入限制在一个区间中【输入】

- input:输入Tensor,类型:float32
- min:Scalar Tensor,optional,类型:float32,区间最小值
- max:Scalar Tensor,optional,类型:float32,区间最大值

【参数】在opset 7~10中min和max是参数【约束】

- min输入必须是常量
- max输入必须是常量

【输出】output:输出Tensor,类型与input输入相同
13Concat数据按维度拼接【输入】

- inputs:List of tensors,类型:float32,int32

【参数】

- axis:int,轴参数,控制需要拼接的数据轴,负值表示从维度最后一位往前数

【约束】

【输出】
concat_result:拼接之后的Tensor,类型:float32,int32
14Constant输出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具有相同的值
15ConstantOfShape根据给定的值和维度,生成1个Tensor【输入】input:1-D Tensor,类型:int32,uint8

【参数】
value:optional,0-D Tensor,需要填充的值,默认为0,默认类型float32

【约束】


【输出】
output:输出Tensor,类型同value
16Conv卷积【输入】

- 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
17ConvTranspose反卷积【输入】

- 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输入
18Cos计算余弦【输入】input:输入Tensor,类型:float32【约束】无限制【输出】output:输出Tensor,类型与x输入相同
19DepthToSpace重组数据,根据blocksize【输入】input:输入Tensor,类型:float32【参数】

- blocksize:数据类型:int
- mode: 数据类型 string

【约束】mode仅支持DCR CRD两种模式【输出】output:输出Tensor,类型与x输入相同
20Div做除法运算【输入】

- 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输入相同
21Elu根据f(x) = alpha * (exp(x) - 1.) 该公式做计算【输入】X:输入Tensor,类型:float32

【参数】
alpha:float32,缺省值为1.0

【约束】


【输出】
Y:输出Tensor,类型与x输入相同
22Equal判断输入是否相等【输入】

- A:输入Tensor,类型:uint8,float32,bool,int32(int32只支持标量)
- B:输入Tensor,类型:uint8,float32,bool,int32(int32只支持标量)

【约束】暂不支持广播场景【输出】C:输出Tensor,类型 bool
23Erf对输入数据逐个元素做error function计算【输入】x:输入Tensor,类型:float32

【约束】
无限制

【输出】
y:输出Tensor,类型与x输入相同
24Exp指数函数,output = e^input【输入】input:输入Tensor,类型:float32,double

【约束】
无限制

【输出】
output:输出Tensor,类型与x输入相同
25Expand根据指定的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输入相同
26Flatten数据按维度展开【输入】input:输入 Tensor,类型float32

【参数】
axis:int,标识数据在哪个维度上展开,值的范围[-r, r],r是输入Tensor的维度个数,负值表示从最后1个维度往回计算

【约束】
axis参数必须为1

【输出】
output:2-D Tensor,类型float32
27Floor对输入进行向下取整【输入】X:输入Tensor,类型:float32

【约束】


【输出】
Y:输出Tensor,类型同X输入
28Gather根据输入的indices,从data中获取entry组成输出tensor【输入】

- data:输入Tensor,类型:float32, int32
- indices:输入Tensor,数据类型int32

【参数】axis:int, [-r, r-1] ,r = rank(data)【约束】【输出】output:输出Tensor,类型同data输入
29Gemm通用矩阵乘法,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是KN,C可以是N或1N或不指定

【输出】Y:输出Tensor,维度是(M, N)
30GlobalAveragePool对输入进行全局平均池化【输入】X:输入Tensor,类型:float32,维度是(N C H W)

【约束】*

【输出】
Y:输出Tensor,类型同X输入
31GlobalMaxPool对输入进行全局最大池化【输入】X:输入Tensor,类型float32,维度是(N C H W)

【约束】*

【输出】
Y:输出Tensor,类型同X输入
32Greater逐个元素比较哪个大【输入】

- A:输入Tensor,类型float32,
- B:输入Tensor,类型float32,

【约束】

【输出】
C:输出Tensor,类型 bool
33InstanceNormalization按照下面公式做归一化运算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输入
34LeakyRelu对输入进行LeakyRelu激活函数计算f(x) = alpha * x for x < 0, f(x) = x for x >= 0【输入】X:输入Tensor,类型:float32

【参数】
alpha:float32,泄漏系数,默认值0.01

【约束】


【输出】
Y:输出Tensor,类型同X输入
35Less对输入A和B进行逐元素Less逻辑运算【输入】

- A:输入Tensor,类型:float32
- B:输入Tensor,类型:float32

【约束】无限制

【输出】
C:输出Tensor,类型:bool
36Log取自然对数运算【输入】input:输入Tensor,类型: float32

【约束】


【输出】
output:输出Tensor,类型同input输入
37LogSoftmax对输入进行logsoftmax(log of softmax)计算【输入】input:输入Tensor,类型:float32

【参数】
axis:int,输入变为2D维度时的轴,默认值1

【约束】
axis参数仅支持最后一维

【输出】
output:输出Tensor,维度和输入相同
38MatMul矩阵乘【输入】

- A:输入Tensor,类型:float32
- B:输入Tensor,类型:float32

【约束】

- A: 输入tensor,2<=rank<=4
- B: 输入tensor,类型与rank同A

【输出】Y:输出Tensor,类型:float32
39Max逐个元素取最大值【输入】

- 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
40MaxPool最大池化【输入】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
41Min逐个元素取最小【输入】

- X1:输入Tensor,类型:float32, int32
- X2:输入Tensor,类型:float32,int32

【约束】

- 5D输入不支持常量广播
- 只支持2个输入

【输出】y:输出Tensor,类型与Xn输入相同
42Mul二元点乘【输入】

- 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
43Neg对Tensor的每个元素取反,y=-x【输入】X:输入Tensor,类型:float32

【约束】


【输出】
Y:输出Tensor,类型:float32
44NonMaxSuppression进行非最大值压缩在指定框中【输入】

- 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
45Or对输入Tensor的每个元素取逻辑或【输入】

- A:输入Tensor,类型:bool
- B:输入Tensor,类型:bool

【约束】input输入不支持NCHW格式数据【输出】C:输出Tensor,类型:bool
46PRelu根据下面公式做运算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输入
47Pad对输入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
48Pow逐个元素做指数运算【输入】

- X:输入Tensor,类型:float32, int32
- Y:输入Tensor,类型:float32, int32

【约束】无限制【输出】Z:输出Tensor,类型:float32, int32
49Range创建一个Tensor,Tensor的数据以start开始,以delta作为步长扩展直到limit【输入】

- start:输入Tensor,标量,类型:float32,int32,输出数据的起始值
- limit:输入Tensor,标量,类型:float32,int32,输出数据的上限值
- delta:输入Tensor,标量,类型:float32,int32,步长

【约束】

- 输入start必须是常量
- 输入limit必须是常量
- 输入delta必须是常量

【输出】output:输出Tensor,标量,类型float32,int32
50ReduceLogSumExp计算输入Tensor沿着指定轴上的对数和的指数【输入】data:输入Tensor,类型:float32【参数】

- axes:list of ints,指定的轴
- keepdims:ints,是否保留指定轴上的维度,默认值是1

【约束】【输出】reduced:输出Tensor
51ReduceMax计算输入Tensor沿着指定轴上的最大值【输入】data:输入Tensor,类型:float32【参数】

- axes:list of ints,指定的轴
- keepdims:ints,是否保留指定轴上的维度,如果是1,保留,如果是0,则不保留,默认值是1

【约束】axes参数为必选参数【输出】reduced:输出Tensor
52ReduceMean计算输入Tensor沿着指定轴上的平均值【输入】data:输入Tensor,类型:float32【参数】

- axes:list of ints,指定的轴
- keepdims:ints,是否保留指定轴上的维度,如果是1,保留,如果是0,则不保留,默认值是1

【约束】axes参数为必选参数【输出】reduced:输出Tensor
53ReduceMin计算输入Tensor沿着指定轴上的最小值【输入】data:输入Tensor,类型:float32【参数】

- axes:list of ints,指定的轴
- keepdims:int,是否保留维度,默认值1

【约束】

- axes参数为必选参数
- keepdims参数仅支持设置为1

【输出】reduced:输出Tensor
54ReduceSum计算输入Tensor沿着指定轴上的和【输入】data:输入Tensor,类型:float32【参数】

- axes:list of ints,指定的轴
- keepdims:int,是否保留维度,默认值1

【约束】axes参数为必选参数【输出】reduced:输出Tensor
55Relu整流线性单位函数【输入】X:输入Tensor,类型:float32

【约束】


【输出】
Y:输出Tensor,类型同X输入
56Reshape改变输入Tensor的维度【输入】

- data:输入Tensor,类型:float32,int32,int64,bool
- shape:输入Tensor,类型:int32,int64

【约束】shape输入必须是常量【输出】reshaped:输出Tensor,类型同data输入
57Resize调整输入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输入
58RoiAlign对关注的区域做对齐操作【输入】

- 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输入
59Round逐个元素取整【输入】X:输入Tensor,类型:float32

【约束】
无限制

【输出】
Y:输出Tensor,类型同X输入
60ScatterElements绘制散点图【输入】

- data:输入Tensor,类型:float32, int8, uint8, bool
- indices:输入Tensor,类型:int32, int64
- updates:输入Tensor,类型:float32, int8, uint8, bool

【参数】axis:int,缺省值为0【约束】【输出】output:输出Tensor,类型同data输入
61Selu对输入做下面公式计算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输入
62Shape获取输入Tensor的维度,并输出【输入】data:输入Tensor,类型:float32,int32,bool,uint8

【约束】
不支持指定为输出节点

【输出】
shape:输出Tensor,data输入的维度
63Sigmoidsigmoid函数,y = 1 / (1 + exp(-x))【输入】X:输入Tensor,类型:float32

【约束】


【输出】
Y:输出Tensor,类型同X输入
64Signsign函数(符号函数),当x>0,sign(x)=1当x=0,sign(x)=0当x<0,sign(x)=-1【输入】input:输入Tensor,类型:float32

【约束】


【输出】
output:输出Tensor,类型和维度同input输入
65Sin计算正弦【输入】input:输入Tensor,类型:float32

【约束】
无限制

【输出】
output:输出Tensor,类型与x输入相同
66Slice对输入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
67Softmax归一化逻辑函数【输入】input:输入Tensor,类型:float32

【参数】
axis:int,输入变为2D维度时的轴,默认值1

【约束】
axis参数仅支持最后一维

【输出】
output:输出Tensor,类型和维度同input输入
68Softplussoftplus激活函数,y = ln(exp(x) + 1)【输入】X:1-D输入Tensor,类型:float32

【约束】


【输出】
Y:1-D输出Tensor,类型同X输入
69Split在指定轴上做拆分,输出多个tensor【输入】input:输入Tensor,类型: float32【参数】

- axis:int, 缺省值为0
- split: list of ints 值必须大于等于0

【约束】

【输出】
outputs:D输出Tensor,类型同输入
70Sqrt求平方根【输入】X:输入Tensor,类型:float32

【约束】


【输出】
Y:输出Tensor,类型同X输入
71Squeeze在指定轴上降维【输入】data:输入Tensor,类型:float32

【参数】
axes:list of ints,轴,缺省值为所有维度,负值表示从后往前遍历

【约束】


【输出】
squeezed:输出Tensor,类型:float32
72Sub逐个元素的减法运算【输入】

- A:输入Tensor,类型:float32 ,第1个操作数
- B:输入Tensor,类型:float32 ,第2个操作数

【约束】

【输出】
C:输出Tensor,类型:float32
73Tan正切函数【输入】input:输入Tensor,类型:float32

【约束】


【输出】
output:输出Tensor,类型:float32
74Tanh双曲函数【输入】input:输入Tensor,类型:float32【约束】【输出】output:输出Tensor,类型:float32
75Tile对输入Tensor做平铺操作【输入】

- input:输入Tensor,类型:float32,int8,uint8,bool
- repeats:1-D输入Tensor,类型:int32, int64

【约束】repeats输入必须是常量【输出】output:输出Tensor,类型同input输入
76TopK实现最大或者最小的K个元素在指定的轴上。【输入】

- X:输入Tensor,类型:float32
- K:输入Tensor,类型:int32, int64

【参数】

- axis:int,缺省值为-1
- largest:int,缺省值为1
- sorted:int,缺省值为1

【约束】K输入必须是常量【输出】

- values:输出Tensor,类型:float32
- indices: 输出Tensor,类型:int32
77Transpose根据属性perm中各个轴的排列顺序,对输入Tensor和shape做相应转换【输入】data:输入Tensor,类型:float32

【参数】
perm:list of ints,轴调整排列的顺序表

【约束】
【输出】transposed:输出Tensor,类型:float32
78Unsqueeze在指定轴上扩维【输入】data:输入Tensor,类型:float32,int32,uint8,bool

【参数
】axes:list of ints,指定需要扩维的轴

【约束】仅支持axes个数为1

【输出】expanded:输出Tensor,类型:float32,int32,uint8,bool
79Upsample上采样【输入】

- 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
80ReduceL2(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
作者

cyhasuka

发布于

2024-04-01

更新于

2024-04-01

许可协议

评论