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