本章主要介绍(MindSpore Lite)所支持的算子规格限制,目前主要支持ONNX格式以及TFLite格式的模型,并且支持算子的数据类型主要为int8以及fp32。
TFLite算子规格参考
Conv2D
功能描述
对4D输入进行卷积计算。
参数说明
表 1 Conv2D参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式为NHWC。
|
-
|
filter
|
input
|
tensor
|
filter张量,维度为4D。
|
规格约束:权重为离线变量
|
bias
|
input
|
tensor
|
bias张量,维度为1D。
|
规格约束:偏置为离线变量
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式为NHWC。
|
-
|
dilation_h_factor
|
attribute
|
int32
|
filter在H方向上的扩张系数。
|
-
|
dilation_w_factor
|
attribute
|
int32
|
filter在W方向上的扩张系数。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
padding
|
attribute
|
string
|
填充类型。
|
配置范围:SAME、VALID
|
stride_h
|
attribute
|
int32
|
filter在H方向上的移动步长。
|
-
|
stride_w
|
attribute
|
int32
|
filter在W方向上的移动步长。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
支持INT8输入/权重/输出、INT32 bias、rank为4、group为1、3x3卷积、无融合激活或融合ReLU;权重为OHWI格式,支持per-tensor或per-output-channel量化 |
FP32 |
支持 |
支持rank为4、batch为1、无bias、无融合激活、stride和dilation均为1的depthwise等价卷积;要求group=input_channel=output_channel,权重为OHWI格式且I=1 |
Conv3D
功能描述
对5D输入进行三维卷积计算。该算子为TFLite规格,支持RISCV Micro目标和x86目标,source entry为TFLite CONV_3D,输入布局为NDHWC,权重布局为[KD, KH, KW, IC, OC]。
float32模型可通过全量化生成int8数据通路,量化后权重为int8,偏置为int32。
参数说明
表 1 Conv3D参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
input |
input |
tensor (float32/int8) |
输入张量,维度为5D,格式为NDHWC。 |
支持float32模型;float32模型可通过全量化生成int8数据通路。 |
filter |
input |
tensor (float32/int8) |
权重张量,维度为5D,格式为[KD, KH, KW, IC, OC]。 |
规格约束:权重为离线常量;全量化后权重为int8。 |
bias |
input |
tensor (float32/int32) |
偏置张量,维度为1D。 |
可选输入;无bias时按0处理;全量化后偏置为int32。 |
output |
output |
tensor (float32/int8) |
输出张量,维度为5D,格式为NDHWC。 |
数据类型与执行通路一致。 |
padding |
attribute |
string |
填充类型。 |
支持SAME、VALID。SAME按out=ceil(in/stride)计算输出尺寸并推导填充。 |
stride_d |
attribute |
int32 |
filter在D方向上的移动步长。 |
支持正整数。 |
stride_h |
attribute |
int32 |
filter在H方向上的移动步长。 |
支持正整数。 |
stride_w |
attribute |
int32 |
filter在W方向上的移动步长。 |
支持正整数。 |
dilation_d_factor |
attribute |
int32 |
filter在D方向上的扩张系数。 |
规格约束:仅支持1。 |
dilation_h_factor |
attribute |
int32 |
filter在H方向上的扩张系数。 |
规格约束:仅支持1。 |
dilation_w_factor |
attribute |
int32 |
filter在W方向上的扩张系数。 |
规格约束:仅支持1。 |
fused_activation_function |
attribute |
string |
融合的激活函数类型。 |
规格约束:仅支持NONE。 |
说明:
TFLite Conv3D不支持dilation factor不为1的场景,不支持fused_activation_function不为NONE的场景。原生int8/int32输入模型不作为该规格支持范围;int8通路来自float32模型的全量化转换。
关键场景分析
使用场景 |
什么时候会遇到 |
软件行为与限制 |
TFLite NDHWC卷积 |
TFLite/TF导出CONV_3D |
输入输出按NDHWC布局处理,SAME按out=ceil(in/stride)推导填充。 |
无bias两输入节点 |
CONV_3D节点仅input/filter输入 |
偏置按0处理。 |
全量化int8通路 |
float32模型 + FULL_QUANT |
转换后使用int8输入/权重/输出和int32偏置执行。 |
不支持规格命中 |
dilation factor不为1或fused_activation_function不为NONE |
转换期报错,不生成模型。 |
MaxPool2D
功能描述
对4D输入进行最大池化计算。
参数说明
表 1 MaxPool2D参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式为NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式为NHWC。
|
-
|
filter_height
|
attribute
|
int32
|
在H方向上的过滤窗口大小。
|
-
|
filter_width
|
attribute
|
int32
|
在W方向上的过滤窗口大小。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
padding
|
attribute
|
string
|
填充类型。
|
配置范围:SAME、VALID
|
stride_h
|
attribute
|
int32
|
filter在H方向上的移动步长。
|
-
|
stride_w
|
attribute
|
int32
|
filter在W方向上的移动步长。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
仅支持MaxPool,输入和输出均为INT8 NHWC四维张量,且必须携带量化参数 |
FP32 |
不支持 |
- |
FullyConnected
功能描述
对2D、3D、4D输入的最后一个维度进行特征映射(类似Onnx规格中Gemm)。
参数说明
表 1 FullyConnected参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
filter
|
input
|
tensor
|
权重张量,维度为2D。
|
规格约束:权重为离线变量
|
bias
|
input
|
tensor
|
偏置张量,维度为1D。
|
规格约束:偏置为离线变量
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式为NHWC。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
weights_format
|
attribute
|
string
|
权重张量在内存中的存储布局。
|
配置范围:DEFAULT,不支持其他配置
|
keep_num_dims
|
attribute
|
bool
|
是否对输入展平为2D进行计算。
|
-
|
asymmetric_quantize_inputs
|
attribute
|
bool
|
是否对输入进行非对称量化。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
支持INT8输入/权重/输出,rank为2,A不转置、B转置、无融合激活;可选INT32 bias,权重支持per-tensor或per-output-channel量化 |
FP32 |
支持 |
支持rank为2、2个或3个输入、A不转置、B可转置;融合激活仅支持无融合激活或ReLU,bias元素数量必须等于输出通道数 |
BatchMatmul
功能描述
对两个2D/3D/4D输入张量进行矩阵乘法运算。
参数说明
说明:
BatchMatmul暂时不支持广播机制,x倒数两维为计算维度[M, K],y倒数两维为计算维度[K, N],K大小必须保持一致。计算维度前,维度必须保持一致。
表 1 BatchMatmul参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度为3D/4D,格式分别为NWC、NHWC。
|
-
|
y
|
input
|
tensor
|
权重张量,维度为3D/4D,格式分别为NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为3D/4D,格式分别为NWC、NHWC。符合矩阵乘法运算规则。
|
-
|
adj_x
|
attribute
|
bool
|
是否对x的最后两个维度进行转置。
|
-
|
adj_y
|
attribute
|
bool
|
是否对y的最后两个维度进行转置。
|
-
|
asymmetric_quantize_inputs
|
attribute
|
bool
|
BatchMatmul是否对输入进行非对称量化。
|
-
|
Softmax
功能描述
计算最后一维的归一化Softmax概率分布。
参数说明
说明:
受TFLite限制,Softmax仅支持在最后一维上进行计算。
表 1 Softmax参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D / 3D / 4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D / 3D / 4D,格式分别为ND、NWC、NHWC。
|
-
|
beta
|
attribute
|
float
|
对输入的缩放系数。
|
配置范围:暂仅支持beta=1.0的情况
|
Relu
功能描述
对输入张量做Relu激活函数运算。
参数说明
表 1 Relu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
Activation训练反向仅支持ReLU,输入和输出均为INT8且必须携带量化参数 |
FP32 |
支持 |
Activation训练反向仅支持ReLU |
Tanh
功能描述
对输入张量做Tanh激活函数运算。
参数说明
表 1 Tanh参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
Logistic (Sigmoid)
功能描述
对输入张量做Sigmoid激活函数运算。
参数说明
表 1 Logistic参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
Reshape
功能描述
改变Tensor的Shape,但不改变其排布。
参数说明
表 1 Reshape参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
shape
|
input
|
tensor (int32)
|
Shape张量,转换后的Shape。
|
规格约束:所有元素之积与input包含的元素个数相等
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
输入和输出元素数量必须一致,且输入和输出为INT8或INT32 |
FP32 |
支持 |
输入和输出元素数量必须一致,且为FP32静态非空张量 |
Mul
功能描述
计算两个矩阵逐点相乘。
参数说明
说明:
Mul支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Mul参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
rhs
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU |
Add
功能描述
计算两个矩阵逐点相加。
参数说明
说明:
Add支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Add参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
-
|
rhs
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU |
Sub
功能描述
计算两个矩阵逐点相减。
参数说明
说明:
Sub支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Sub参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
rhs
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU |
Gather
功能描述
根据指定索引,从输入张量的指定轴上提取元素,组合成新张量
参数说明
表 1 Gather参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
params
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
indices
|
input
|
tensor (int32)
|
索引张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
axis
|
attribute
|
int
|
输入张量被切分的轴。
|
-rank(value)<=axis
|
batch_dims
|
attribute
|
int
|
将索引的前batch_dims个轴作为batch轴,切分行为有所改变。
|
仅支持为batch_dims为0的情况
|
Split
Split算子在TFLITE框架中包含tfl.Split、tfl.SplitV等api,其中tfl.Split表示均匀划分,tfl.SplitV自定义非均匀划分。
Split
功能描述
对张量分割按照某一轴平均切分成若干份。
参数说明
表 1 Split参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
value
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
outputs
|
output
|
varList(tensor)
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
num_splits
|
attribute
|
int
|
平均分割的数量。
|
(0, split_dim] ,且 num_splits需要能被指定轴整除
|
split_dim
|
attribute
|
int
|
指定被分割的轴。
|
维度索引
|
SplitV
功能描述
对张量分割按照某一轴非平均切分成若干份。
参数说明
表 1 SplitV参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
value
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
outputs
|
output
|
varList(tensor)
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
num_splits
|
attribute
|
int
|
分割的数量。
|
-
|
size_splits
|
attribute
|
tensor
|
具体每一份分割的维度。
|
[n1, n2, ..., ni],∑ni = axis,n > 0
|
split_dim
|
attribute
|
int
|
被分割的轴。
|
-rank(value)<=axis
|
Concatenation
功能描述
将多个张量拼接成某一个张量。
参数说明
表 1 Concatenation参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
values
|
input
|
varList(tensor)
|
输入张量列表,内部各张量维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
规格约束:列表中各张量在指定轴上元素个数相等
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
axis
|
attribute
|
int
|
指定沿着哪个轴进行连接。
|
规格约束:-rank(value)<=axis
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
仅支持2个输入和1个输出;输入和输出rank必须相同且非空,非axis维度一致,axis维度等于两个输入对应维度之和 |
AveragePool2D
功能描述
对4D输入进行平均池化计算。
参数说明
表 1 AveragePool2D参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式为NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式为NHWC。
|
-
|
filter_height
|
attribute
|
int32
|
在H方向上的过滤窗口大小。
|
-
|
filter_width
|
attribute
|
int32
|
在W方向上的过滤窗口大小。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
padding
|
attribute
|
string
|
填充类型。
|
配置范围:SAME、VALID
|
stride_h
|
attribute
|
int32
|
filter在H方向上的移动步长。
|
-
|
stride_w
|
attribute
|
int32
|
filter在W方向上的移动步长。
|
-
|
Tile
功能描述
对2D/3D/4D输入沿指定维度做复制扩展。
参数说明
表 1 Tile参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
-
|
multiples
|
input
|
list(int)
|
指定每个维度复制次数。
|
规格约束:multiples为离线常量
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
-
|
Pad
Pad算子在TFLITE框架中包含tfl.Pad、tfl.PadV2、tfl.Mirror_Pad等api,其中tfl.Pad表示零填充,tfl.Padv2表示自定义常量填充,tfl.Mirror_Pad表示镜像反射填充。
Pad
功能描述
对输入张量边界做零填充。
参数说明
表 1 Pad参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
规格约束:int8量化场景仅支持4D张量输入
|
padding
|
input
|
list(int)
|
指定各输入维度填充范围。
|
规格约束:padding为离线常量,padding[i]
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
-
|
PadV2
功能描述
对输入张量边界做自定义常量填充。
参数说明
表 1 PadV2参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
规格约束:int8量化场景仅支持4D张量输入
|
padding
|
input
|
list(int)
|
指定各输入维度填充范围。
|
规格约束:padding为离线常量,padding[i]
|
constant_values
|
input
|
int32
|
自定义填充常数。
|
规格约束:constant_values为离线常量
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
-
|
Mirror_Pad
功能描述
对输入张量边界做镜像反射填充。
参数说明
表 1 Mirror_Pad参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
-
|
pad
|
input
|
list(int)
|
指定各输入维度填充范围。
|
规格约束:pad为离线常量,pad[i]
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
-
|
mode
|
attribute
|
string
|
填充模式,指定边界填充方式。
|
配置范围:REFLECT、SYMMETRIC
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
不支持 |
- |
Resize
Resize算子在TFLITE框架中包含tfl.Resize_Bilinear、tfl.Resize_Nearest_Neighbor等api,其中tfl.Pad表示零填充,tfl.Resize_Bilinear表示双线性插值缩放,tfl.Resize_Nearest_Neighbor表示最近邻插值缩放。
Resize_Bilinear
功能描述
对输入张量做双线性插值缩放。
参数说明
表 1 Resize_Bilinear参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式为NHWC。
|
-
|
size
|
input
|
list(int)
|
指定输出张量的目标尺寸。
|
规格约束:离线常量,NC维度与输入张量保持一致
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式为NHWC。
|
-
|
align_corners
|
attribute
|
bool
|
缩放填充模式,是否对齐输入输出的角落像素。
|
配置范围:true、false,与half_pixel_centers必须配置一个且仅一个配置为true
|
half_pixel_centers
|
attribute
|
bool
|
缩放填充模式,像素坐标中心是否取(0.5, 0.5)计算。
|
配置范围:true、false
|
Resize_Nearest_Neighbor
功能描述
对输入张量做最近邻插值缩放。
参数说明
表 1 Resize_Nearest_Neighbor参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式为NHWC。
|
-
|
size
|
input
|
list(int)
|
指定输出张量的目标尺寸。
|
规格约束:离线常量,NC维度与输入张量保持一致
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式为NHWC。
|
-
|
align_corners
|
attribute
|
bool
|
缩放填充模式,是否对齐输入输出的角落像素。
|
配置范围:true、false,与half_pixel_centers必须配置一个且仅一个配置为true
|
half_pixel_centers
|
attribute
|
bool
|
缩放填充模式,像素坐标中心是否取(0.5, 0.5)计算。
|
配置范围:true、false
|
Squeeze
功能描述
对输入张量进行shape压缩操作。
参数说明
表 1 Squeeze参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
output
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
squeeze_dims(可选)
|
attribute
|
list(int)
|
被压缩的轴列表。
|
-Rank(tensor) <= axis < Rank(tensor)
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
输入和输出元素数量必须一致,且输入和输出为INT8或INT32 |
FP32 |
支持 |
输入和输出元素数量必须一致,且为FP32静态非空张量 |
ExpandDims
功能描述
对输入张量进行shape扩展操作。
参数说明
表 1 ExpandDims参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
output
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
dim
|
attribute
|
int
|
被扩展的轴。
|
-Rank(output) <= axis < Rank(output)
|
Abs
功能描述
对张量的每个元素做绝对值运算。
参数说明
表 1 Abs参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
要求使用FP32静态非空张量 |
Ceil
功能描述
对张量中的每个元素做向上取整操作。
参数说明
表 1 Ceil参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
Cos
功能描述
对张量中的每个元素做余弦操作。
参数说明
表 1 Cos参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
[-1, 1]
|
Exp
功能描述
对张量中的每个元素做指数计算操作。
参数说明
表 1 Exp参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
(0, 正无穷)
|
Floor
功能描述
对张量中的每个元素做向下取整操作。
参数说明
表 1 Floor参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
Log
功能描述
对张量中的每个元素做对数计算操作(底数值为e)。
参数说明
表 1 Log参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
(0, 正无穷)
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
Round
功能描述
对张量中的每个元素做四舍五入操作。
参数说明
表 1 Round参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
Rsqrt
功能描述
对张量中的每个元素做平方根倒数计算操作。
参数说明
表 1 Rsqrt参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
(0, 正无穷)
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
(0, 正无穷)
|
Sin
功能描述
对张量中的每个元素做正弦计算操作。
参数说明
表 1 Sin参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
[-1, 1]
|
Sqrt
功能描述
对张量中的每个元素做平方根计算操作。
参数说明
表 1 Sqrt参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
[0, 正无穷)
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
[0, 正无穷)
|
Square
功能描述
对张量中的每个元素做平方计算操作。
参数说明
表 1 Square参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
L2Normalization
功能描述
沿指定轴,用L2范数对输入张量执行归一化计算。
参数说明
表 1 L2Normalization参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU、RELU6
|
Slice
Slice算子在TFLITE框架中包含tfl.slice、tfl.strided_slice等api,其中tfl.slice为连续提取子张量,tfl.strided_slice可以通过指定步长、掩码等方式更灵活地进行提取。
Slice
功能描述
从输入张量中沿指定轴连续提取子张量。
参数说明
表 1 Slice参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
-
|
begins
|
input
|
tensor
|
维度为1D,对应各维度的起始索引。
|
规格约束:begins为离线常量
|
size
|
input
|
tensor
|
维度为1D,各维度要提取的元素个数。size[i]=-1时表示取i轴上从begins[i]开始的所有元素。
|
规格约束:size为离线常量
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
-
|
StridedSlice
功能描述
从输入张量中沿指定轴提取子张量。
参数说明
表 1 StridedSlice参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。
|
-
|
begin
|
input
|
tensor
|
维度为1D,对应各维度的起始索引。
|
规格约束:begin为离线常量
|
end
|
input
|
tensor
|
维度为1D,对应各维度的结束索引。
|
规格约束:end为离线常量
|
strides
|
input
|
tensor
|
维度为1D,对应各维度的切片步长。
|
规格约束:strides为离线常量
|
output
|
output
|
tensor
|
输出张量,输出维度和尺寸由切片逻辑及掩码决定。
|
-
|
begin_mask
|
attribute
|
int
|
第 i 维度对应位为 1 时,忽略该维度的 begin[i],改用维度起始边界(正向切片 = 0,反向切片 = 维度长度 - 1)。
|
-
|
end_mask
|
attribute
|
int
|
第 i 维度对应位为 1 时,忽略该维度的 end[i],改用维度结束边界(正向 = 维度长度,反向切片 =-1)。
|
-
|
ellipsis_mask
|
attribute
|
int
|
第 i 维度对应位为 1 时,对应维度及后续未显式指定的维度完整保留。
|
规格约束:仅允许一个二进制位为1
|
new_axis_mask
|
attribute
|
int
|
第 i 维度对应位为 1 时,在输出中插入长度为 1 的新维度。
|
-
|
shrink_axis_mask
|
attribute
|
int
|
第 i 维度对应位为 1 时,在输出中移除该维度。
|
-
|
offset
|
attribute
|
bool
|
取值为true:end输入表示切片长度。
取值为false:直接使用原始索引。
|
暂不支持配置,默认为false
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
支持rank为1~8的FP32静态非空张量;要求full-rank归一化参数,不支持slice mask,stride必须为正,不支持空切片 |
DepthwiseConv2D
功能描述
对4D输入进行深度可分离卷积计算。
参数说明
表 1 DepthwiseConv2D参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式为NHWC。
|
-
|
filter
|
input
|
tensor
|
filter张量,维度为4D。
|
规格约束:权重为离线常量
|
bias
|
input
|
tensor
|
bias张量,维度为1D。
|
规格约束:偏置为离线常量
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式为NHWC。
|
-
|
dilation_h_factor
|
attribute
|
int32
|
filter在H方向上的扩张系数。
|
-
|
dilation_w_factor
|
attribute
|
int32
|
filter在W方向上的扩张系数。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
padding
|
attribute
|
string
|
填充类型。
|
配置范围:SAME、VALID
|
stride_h
|
attribute
|
int32
|
filter在H方向上的移动步长。
|
-
|
stride_w
|
attribute
|
int32
|
filter在W方向上的移动步长。
|
-
|
depth_multiplier
|
attribute
|
int32
|
深度乘法因子,控制通道数缩放。
|
规格约束:INT8量化场景仅支持配置为1
|
Transpose
功能描述
对输入张量进行转置。
参数说明
表 1 Transpose参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
perm
|
input
|
tensor
|
输入张量的维度重排顺序。
|
规格约束:不支持perm=[0,3,1,2]、[0,2,3,1]的Transpose单算子转换
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
perm必须是合法的int32常量全排列;输入和输出为INT8或INT32,元素数量和rank必须一致 |
FP32 |
支持 |
perm必须是合法的int32常量全排列;输入和输出为FP32静态非空张量,rank为1~19 |
ArgMax
功能描述
在张量的指定维度上,计算并返回最大值对应的位置索引。
参数说明
说明:
仅支持float类型,不支持int8类型。
表 1 ArgMax参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
dim
|
input
|
tensor
|
指定在张量中执行计算逻辑的维度。
|
规格约束:-rank(input)<=axis
|
output
|
output
|
tensor (int32)
|
输出张量,维度为1D/2D/3D,格式为N/ND/NCW。
|
-
|
output_type
|
attribute
|
TensorType
|
指定算子输出张量的元素数据类型。
|
规格约束:仅支持配置为tf.int32
|
ArgMin
功能描述
在张量的指定维度上,计算并返回最小值对应的位置索引。
参数说明
说明:
仅支持float类型,不支持int8类型。
表 1 ArgMin参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
dim
|
input
|
tensor
|
指定在张量中执行计算逻辑的维度。
|
规格约束:-rank(input)<=axis
|
output
|
output
|
tensor (int32)
|
输出张量,维度为1D/2D/3D,格式为N/ND/NCW。
|
-
|
output_type
|
attribute
|
TensorType
|
指定算子输出张量的元素数据类型。
|
规格约束:仅支持配置为tf.int32
|
Div
功能描述
对两输入张量进行除法运算。
参数说明
表 1 Div参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
rhs
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
fused_activation_function
|
attribute
|
string
|
融合的激活函数类型。
|
配置范围:NONE、RELU
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
支持广播兼容shape,rank不超过10;不支持融合激活 |
ReduceMax
功能描述
对指定维度的张量进行最大值归约计算。
参数说明
表 1 ReduceMax参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
axes
|
input
|
tensor
|
指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
keep_dims
|
attribute
|
bool
|
是否需要保留归约轴的维度。
|
配置范围:true/false
|
ReduceMin
功能描述
对指定维度的张量进行最小值归约计算。
参数说明
表 1 ReduceMin参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
axes
|
input
|
tensor
|
指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
keep_dims
|
attribute
|
bool
|
是否需要保留归约轴的维度。
|
配置范围:true/false
|
Sum
功能描述
对指定维度的张量进行求和归约计算。
参数说明
表 1 Sum参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
axes
|
input
|
tensor
|
指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
keep_dims
|
attribute
|
bool
|
是否需要保留归约轴的维度。
|
配置范围:true/false
|
Mean
功能描述
对指定维度的张量进行均值归约计算。
参数说明
表 1 Mean参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
axes
|
input
|
tensor
|
指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
keep_dims
|
attribute
|
bool
|
是否需要保留归约轴的维度。
|
配置范围:true/false
|
Cast
功能描述
对输入张量进行数据类型的转换。
参数说明
说明:
Cast算子不支持量化。
表 1 Cast参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
数据类型仅支持float32、uint8、int8、int32
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
数据类型仅支持float32、uint8、int8、int32
|
Quantize
功能描述
对输入张量进行量化操作。
参数说明
说明:
Quantize算子不支持量化。
表 1 Quantize参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
int8, uint8
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
float32, int8, uint8
|
Dequantize
功能描述
对输入张量进行反量化操作。
参数说明
说明:
Dequantize算子不支持量化。
表 1 Dequantize参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
float32, int8, uint8
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
int8, uint8
|
PRelu
功能描述
对输入张量进行参数化 ReLU 激活处理。其在输入为非负值时保持原值,在输入为负值时根据斜率参数进行线性缩放。
参数说明
表 1 PRelu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
待进行PReLU激活处理的数据,维度为1D / 2D / 3D / 4D。
|
数据类型仅支持 float32、int8;不限定具体数据格式。
|
alpha
|
input
|
tensor
|
负半轴斜率参数,维度为0D / 1D / 2D / 3D / 4D。
|
数据类型仅支持 float32;不限定具体数据格式,但其形状需支持单向广播到 input 。
|
output
|
output
|
tensor
|
输出张量,维度与 input 一致。
|
数据类型仅支持 float32、int8;维度与 input 一致。
|
说明:
在量化过程中,PReLU算子的第二输入保留FP32格式,以保证负半轴计算精度。
CumSum
功能描述
对输入张量沿指定维度进行累加求和处理,输出结果为该维度上的前缀和。
参数说明
表 1 CumSum参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
待进行累加求和处理的输入张量,维度为 1D / 2D / 3D / 4D。
|
数据类型仅支持 float32、int8;不限定具体数据格式。
|
axis
|
input
|
tensor
|
进行累加求和的维度,维度为 0D。
|
数据类型仅支持 int32、int64;取值范围为 [ -rank(input), rank(input) - 1],当 axis 为负数时,表示从最后一个维度开始反向索引。
|
output
|
output
|
tensor
|
沿 axis 维度进行累加求和后的结果。
|
数据类型和维度与 input 一致。
|
exclusive
|
attribute
|
bool
|
是否采用排除当前元素的累加方式。
|
-
|
reverse
|
attribute
|
bool
|
是否沿指定维度反向累加。
|
-
|
ReverseSequence
功能描述
对输入张量指定轴前N个数据进行反转。
表 1 ReverseSequence参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、uint8、int8、int32
|
seq_lengths
|
input
|
tensor
|
输入张量,维度为1D。
|
数据类型仅支持int32,每个数据均满足0<=seq_len<=input_shape[seq_axis]
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、uint8、int8、int32
|
batch_axis
|
attribute
|
int
|
批次轴的序号。
|
默认为1,可支持缺省配置,必须与time_axis不同。仅支持0,1配置。
|
seq_axis
|
attribute
|
int
|
反转轴的序号。
|
默认为0,可支持缺省配置,必须与batch_axis不同。仅支持0,1配置。
|
Relu6
功能描述
对输入张量做Relu6激活函数运算。在输入为非负值且不大于 6 时保持原值,在输入为负值时置为 0,在输入大于 6 时置为 6。
参数说明
表 1 Relu6参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
LeakyRelu
功能描述
对输入张量做LeakyRelu激活函数运算。在输入为非负值时保持原值,在输入为负值时根据缩放系数进行线性缩放。
参数说明
表 1 LeakyRelu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
alpha
|
attribute
|
float
|
负半轴缩放系数
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
HardSwish
功能描述
对输入张量做HardSwish激活函数运算。公式为:output = input * HardSigmoid(α=1/6, β=0.5, input)
参数说明
表 1 HardSwish参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
LogicalAnd
功能描述
对两个输入张量执行逐元素“与”逻辑运算。
参数说明
说明:
LogicalAnd支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
LogicalAnd算子不支持量化。
表 1 LogicalAnd参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor(bool)
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
-
|
rhs
|
input
|
tensor(bool)
|
右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
output
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
Equal
功能描述
对两个输入张量执行逐元素“等于”逻辑运算。
参数说明
说明:
Equal支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Equal参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
数据类型仅支持float32、bool
|
y
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
数据类型仅支持float32、bool
|
output
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
GreaterEqual
功能描述
对两个输入张量执行逐元素“大于等于”逻辑运算。
参数说明
说明:
GreaterEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 GreaterEqual参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
数据类型仅支持float32、bool
|
rhs
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
数据类型仅支持float32、bool
|
output
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
Greater
功能描述
对两个输入张量执行逐元素“大于”逻辑运算。
参数说明
说明:
Greater支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Greater参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
数据类型仅支持float32、bool
|
rhs
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
数据类型仅支持float32、bool
|
output
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
LessEqual
功能描述
对两个输入张量执行逐元素“小于等于”逻辑运算。
参数说明
说明:
LessEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 LessEqual参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
数据类型仅支持float32、bool
|
rhs
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
数据类型仅支持float32、bool
|
output
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
Less
功能描述
对两个输入张量执行逐元素“小于”逻辑运算。
参数说明
说明:
Less支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Less参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
数据类型仅支持float32、bool
|
rhs
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
数据类型仅支持float32、bool
|
output
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
NotEqual
功能描述
对两个输入张量执行逐元素“不等于”逻辑运算。
参数说明
说明:
NotEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 NotEqual参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
数据类型仅支持float32、bool
|
rhs
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
数据类型仅支持float32、bool
|
output
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
LogicalNot
功能描述
逐元素返回输入张量的取反值。
参数说明
说明:
LogicalNot算子不支持量化。
表 1 LogicalNot参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor(bool)
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
-
|
output
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
-
|
LogicalOr
功能描述
对两个输入张量执行逐元素“或”逻辑运算。
参数说明
说明:
LogicalOr支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
LogicalOr算子不支持量化。
表 1 LogicalOr参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
lhs
|
input
|
tensor(bool)
|
左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。
|
-
|
rhs
|
input
|
tensor(bool)
|
右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
output
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。
|
-
|
Elu
功能描述
对输入张量做Elu激活函数运算。公式为:y = x if x >= 0 else (exp(x)-1)
参数说明
表 1 Elu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。
|
-
|
y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。
|
-
|
DepthToSpace
功能描述
对输入张量维度的深度(通道)维度的数据重排到空间(高、宽)维度。
参数说明
表 1 DepthToSpace参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式分别为NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式分别为NHWC。
|
-
|
block_size
|
attribute
|
int
|
从深度维度重组到空间维度的基础块尺寸
|
规格约束:block_size>=2, C%block_size^2 == 0
|
SpaceToDepth
功能描述
对输入张量空间(高、宽)维度的数据重排到深度(通道)维度。
参数说明
表 1 SpaceToDepth参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式分别为NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式分别为NHWC。
|
-
|
block_size
|
attribute
|
int
|
从空间维度重组到深度维度的基础块尺寸
|
规格约束:block_size>=2, H%block_size == 0,W%block_size == 0
|
Fill
功能描述
创建形状为 dims 的张量,所有元素填充为给定的标量 value。该算子仅在 TFLITE 框架中定义(BuiltinOperator 编号:94),ONNX 框架无对应标准算子。不支持 ONNX 格式转换。
参数说明
表 1 Fill参数概览
dims
|
input
|
tensor(int32)
|
输出张量的形状,维度为1D,每个元素指定一个维度的大小。
|
规格约束:每个元素 ≥ 0,维度数不超过 32
|
value
|
input
|
tensor(fp32/int32/bool/int8)
|
填充值,标量(0-D 张量),数据类型决定输出张量的数据类型。
|
规格约束:不支持fp16类型
|
output
|
output
|
tensor(fp32/int32/bool/int8)
|
输出张量,形状 = dims,全部元素 = value,数据类型与 value 一致。
|
- |
Shape
功能描述
获取输入张量的形状信息。
参数说明
表 1 Shape参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
output
|
output
|
tensor (int32)
|
输出张量,维度为1D,元素为输入张量的各维度大小。
|
-
|
Neg
功能描述
对张量的每个元素做取负运算(符号取反),即 y = -x。
参数说明
表 1 Neg参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor(fp32/int8)
|
输入张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。
|
规格约束:不支持fp16类型;int8 需全量化 cfg
|
y
|
output
|
tensor(fp32/int8)
|
输出张量,维度与输入 x 相同,每个元素为 x 对应元素的相反数。
|
-
|
Pow
功能描述
计算两个张量的逐元素幂运算,base 为底数张量,exponent 为指数张量,输出 result = base^exponent。支持 NumPy 风格广播。
参数说明
说明:
Pow 无内置属性,转换时自动填充。支持广播特性,双向广播需在转换命令中明确配置 inputDataFormat 和 outputDataFormat 参数。
推荐使用 X ≥ 0 的输入组合确保结果确定性;X < 0 且 Y 为非整数时实数域无定义,输出值取决于底层数学库。
INT8 量化仅支持 X ≥ 0 的输入,X < 0 时负数值在 int8 对称量化中将被映射为 0。
表 1 Pow参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
base
|
input
|
tensor(fp32/int8)
|
底数张量,维度为 1D/2D/3D/4D,格式分别为 ND、NWC、NHWC。
|
规格约束:最大维度 4D;支持 NumPy 广播;不支持fp16 类型;INT8 不支持 X<0 的输入
|
exponent
|
input
|
tensor(fp32/int8)
|
指数张量,维度为 1D/2D/3D/4D,与 base 广播兼容。
|
规格约束:最大维度 4D;不支持fp16 类型
|
result
|
output
|
tensor(fp32/int8)
|
输出张量,维度为 base 与 exponent 的广播结果,格式分别为 ND、NWC、NHWC。
|
规格约束:最大维度 4D;不支持fp16 类型 |
TopK
功能描述
获取输入张量中沿指定维度前K个最大值。
参数说明
表 1 TopK参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度不限制。
|
规格约束:不支持int64
|
k
|
input
|
tensor (int32)
|
需要获取的TopK个数,标量。
|
-
|
values
|
output
|
tensor
|
TopK值张量,最后一维为K。
|
-
|
indices
|
output
|
tensor (int32)
|
TopK值的索引张量,最后一维为K。
|
-
|
Gelu
功能描述
对输入张量做Gelu激活函数运算。Gelu(Gaussian Error Linear Unit)基于正态分布累积概率,对输入乘以其概率分布的值实现连续非线性变换,相比传统激活函数在负值区域具有平滑的非零梯度。
参数说明
表 1 Gelu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。
|
-
|
approximate
|
attribute
|
bool
|
是否启用tanh近似计算模式,默认值false。
|
配置范围:false(采用高精度拟合计算)、true(采用tanh快速近似算法)
|
Pack
功能描述
Pack算子用于沿着指定的新轴(axis)将一组形状相同的输入张量堆叠(拼接)成一个新的高维张量。堆叠后输出张量的维度(Rank)相比单个输入张量增加1。
参数说明
表 1 Pack参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
values
|
input
|
varList(tensor)
|
输入张量列表,内部各张量维度为2D/3D/4D,格式分别为ND/NWC/NHWC。
|
规格约束:列表中各张量形状完全相同
|
output
|
output
|
tensor
|
输出张量,维度比单个输入多1维(输出Rank=输入Rank+1),格式分别为ND/NWC/NHWC。
|
-
|
values_count
|
attribute
|
int
|
输入张量列表中张量的个数。
|
规格约束:必须与实际传入的输入张量数量一致(values_count>=1)
|
axis
|
attribute
|
int
|
堆叠操作插入的新维度轴编号。
|
规格约束:范围为[-(R+1), R](其中R为单个输入张量的维度数)
|
Unpack
功能描述
Unpack算子用于沿指定的轴(axis)将一个高维张量拆分(解包)成一组低维张量,是Pack算子的逆向操作。解包后每个输出张量的维度(Rank)相比输入张量减少1。
参数说明
表 1 Unpack参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。
|
-
|
outputs
|
output
|
varList(tensor)
|
输出张量列表,每个输出张量维度为输入维度-1(输出Rank=输入Rank-1),输出张量数量等于输入在axis轴上的Size。
|
-
|
num
|
attribute
|
int
|
从输入中拆分出的张量数量(即输出列表长度)。
|
规格约束:必须严格等于输入张量在指定axis轴上的维度大小(input.shape[axis]==num)
|
axis
|
attribute
|
int
|
执行拆分操作的维度轴编号。
|
规格约束:范围为[-R, R-1](其中R为输入张量的维度数)
|
Select
功能描述
根据条件张量从两输入张量中选择元素,不支持广播。
参数说明
表 1 Select参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
condition
|
input
|
tensor
|
条件张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
规格约束:数据类型为bool
|
x
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
y
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
SelectV2
功能描述
根据条件张量从两输入张量中选择元素,支持广播。
参数说明
表 1 SelectV2参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
condition
|
input
|
tensor
|
条件张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
规格约束:数据类型为bool
|
x
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
y
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
ReverseV2
功能描述
沿指定轴对张量进行反转。
参数说明
表 1 ReverseV2参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
axis
|
input
|
tensor
|
指定反转的轴,维度为1D。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),元素不重复,元素数量不超过4
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。
|
-
|
Maximum
功能描述
对两个输入张量执行逐元素取最大值运算。
参数说明
表 1 Maximum参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input1
|
input
|
tensor
|
输入张量 1,维度为 2D/3D/4D,ND/NWC/NHWC 数据排布。
|
固定为二元输入,支持广播
|
input2
|
input
|
tensor
|
输入张量 2,维度为 2D/3D/4D。
|
与 input1 遵循 NumPy 广播规则
|
output
|
output
|
tensor
|
输出张量,维度为广播后的形状。
|
-
|
Minimum
功能描述
对两个输入张量执行逐元素取最小值运算。
参数说明
表 1 Minimum参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input1
|
input
|
tensor
|
输入张量 1,维度为 2D/3D/4D,ND/NWC/NHWC 数据排布。
|
固定为二元输入,支持广播
|
input2
|
input
|
tensor
|
输入张量 2,维度为 2D/3D/4D。
|
与 input1 遵循 NumPy 广播规则
|
output
|
output
|
tensor
|
输出张量,维度为广播后的形状。
|
-
|
ReduceProd
功能描述
沿指定轴计算输入张量所有元素的乘积。
参数说明
表 1 ReduceProd参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入数据张量,维度为 2D/3D/4D,ND/NWC/NHWC 数据排布。
|
-
|
axes
|
input
|
tensor
|
1D 张量,指定归约轴列表。
|
固定属性(由模型确定)
|
output
|
output
|
tensor
|
归约后的输出张量。
|
shape 取决于 axes 和 keep_dims
|
keep_dims
|
attribute
|
bool
|
是否保持归约轴维度,默认值 false。
|
true:保持维度;false:消除维度
|
OneHot
功能描述
将整数类别索引张量展开为OneHot编码张量,在axis指定的位置插入深度维。该算子与布局无关,不进行NCHW/NHWC转换。
参数说明
表 1 OneHot参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
indices
|
input
|
tensor (int32)
|
待编码的类别索引张量。
|
维度不限制,支持标量;索引小于0或大于等于depth时,对应输出切片全部为off_value
|
depth
|
input
|
tensor (int32)
|
OneHot编码深度。
|
规格约束:必须为标量
|
on_value
|
input
|
tensor (float32)
|
索引有效位置的填充值。
|
规格约束:必须为标量
|
off_value
|
input
|
tensor (float32)
|
其余位置的填充值。
|
规格约束:必须为标量
|
output
|
output
|
tensor (float32/int8)
|
OneHot编码结果。
|
输出秩为indices秩加1,axis维度大小为depth;非量化输出为float32,全量化输出为int8
|
axis
|
attribute
|
int
|
深度维的插入位置。
|
配置范围:-1或[0, rank(indices)];默认-1,表示在末尾追加深度维
|
Unique
功能描述
对一维输入张量进行去重。唯一值按照在输入中首次出现的顺序输出,同时输出每个输入元素在唯一值输出中的下标。
参数说明
说明:
Unique算子支持float32/int8,不支持量化。
表 1 Unique参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor (float32/int8/uint8/int32)
|
待去重的输入张量。
|
规格约束:仅支持一个输入,输入维度必须为1D
|
values
|
output
|
tensor (与x相同)
|
按照首次出现顺序排列的唯一值。
|
输出维度为1D;按输入长度预留容量,运行时长度为0至输入长度,并同步输出逻辑形状
|
indices
|
output
|
tensor (int32/int64)
|
每个输入元素在values输出中的下标。
|
输出维度为1D,长度与输入长度相同
|
idx_out_type
|
attribute
|
enum
|
指定indices输出的数据类型。
|
配置范围:INT32、INT64
|
GatherNd
功能描述
根据 indices 中的多维坐标,从 params 中收集元素或切片。设索引深度为 D=indices.shape[-1] ,输出shape为 indices.shape[:-1]+params.shape[D:] ,输出数据类型与 params 一致。
该算子仅支持TFLite格式和RISCV Micro目标,source entry为TFLite GATHER_ND。支持FP32、INT32、BOOL数据通路;float32模型可通过全量化生成INT8数据通路。
参数说明
说明:
GatherNd无属性。indices仅用于定位数据,不参与量化;INT8通路来自float32模型的全量化转换,不支持将indices量化。
表 1 GatherNd参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
params
|
input
|
tensor (float32/int32/bool/int8)
|
被收集元素或切片的数据张量。
|
必须为静态形状;rank不超过16。float32模型支持非量化和全量化int8通路。
|
indices
|
input
|
tensor (int32/int64)
|
多维索引张量,最后一维保存索引元组。
|
必须为静态形状;rank(indices)必须大于等于1且不超过16;D必须大于0且小于等于rank(params);坐标值必须大于等于0且小于params对应维度大小。
|
output
|
output
|
tensor
|
按索引元组收集得到的元素或切片,数据类型与params一致。
|
必须为静态形状;shape为indices.shape[:-1]+params.shape[D:];输出元素数、步长和偏移量必须在有符号32位整数范围内。
|
关键场景分析
使用场景 |
什么时候会遇到 |
软件行为与限制 |
TFLite基本GatherNd |
TFLite/TF导出GATHER_ND |
按indices最后一维表示的多维坐标从params收集元素或切片。 |
收集标量元素 |
D等于rank(params) |
输出shape为indices.shape[:-1]。 |
收集尾部切片 |
D小于rank(params) |
输出shape为indices.shape[:-1]+params.shape[D:]。 |
全量化int8通路 |
float32模型 + FULL_QUANT |
params/output使用INT8通路,indices保持INT32或INT64,不参与量化。 |
不支持规格命中 |
indices为负数、越界、D大于rank(params)、shape非静态或中间计算溢出INT32 |
转换期或运行期报错,不生成有效结果。 |
ScatterND
功能描述
根据indices中的多维坐标,将updates中的元素或切片写入由shape指定的全零输出张量。设索引深度为K=indices.shape[-1],则updates.shape必须等于indices.shape[:-1]+shape[K:]。多个相同索引对应的updates执行累加。
该算子仅支持TFLite格式和RISCV Micro目标,支持FP32和全量化INT8通路。
参数说明
表 1 ScatterND参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
indices |
input |
tensor (int32) |
多维索引张量,最后一维保存索引元组。 |
必须为静态形状,rank为2~16;K必须大于0且不超过输出rank;仅支持非负索引。 |
updates |
input |
tensor (float32/int8) |
写入或累加到目标位置的元素或切片。 |
必须为静态形状,shape等于indices.shape[:-1]+shape[K:];支持FP32和全量化INT8。 |
shape |
input |
tensor (int32) |
指定输出张量形状。 |
必须是转换时可确定的常量1D张量,元素个数等于输出rank,且内容与推导出的输出形状一致。 |
output |
output |
tensor (float32/int8) |
以全零张量为初值,按indices累加updates得到的结果。 |
数据类型与updates一致,必须为静态形状,rank为1~16。 |
说明:
TFLite ScatterND没有data输入,输出以0初始化;重复索引按TFLite语义累加。索引小于0或超出对应输出维度范围时运行失败。INT8通路使用per-tensor量化参数。
LogSoftmax
功能描述
对输入张量最后一维的元素计算对数归一化概率。对于最后一维中的每个元素,计算公式为:Yi=Xi-log(Σjexp(Xj))。输出张量的形状和格式与输入相同。
参数说明
说明:
受TFLite算子规格限制,LogSoftmax仅支持在最后一维上进行计算。
表 1 LogSoftmax参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为1D~5D;沿最后一维进行计算。
|
模型数据类型为float32;支持FP32和全量化INT8转换。
|
output
|
output
|
tensor
|
输出张量,形状和格式与输入相同。
|
模型输出数据类型与输入一致。
|
TransposeConv
功能描述
TFLite的转置卷积(反卷积)算子,用于上采样,数据布局为NHWC。输出空间维按TFLite规格计算:SAME模式下o=i×s,即输出尺寸等于输入尺寸乘以步长;VALID模式下o=(i-1)×s+k,即输出尺寸等于输入尺寸减1乘以步长再加核尺寸。其中o为该维度的输出尺寸,i为该维度的输入尺寸,s为步长(上采样因子),k为卷积核在该维度的大小。
参数说明
说明:
支持SAME和VALID两种padding、大于等于1的任意步长、2D空间卷积核(KH×KW,各维尺寸大于等于1,支持非方形核)以及带偏置的四输入形态;支持FP32和全量化INT8转换,权重按输出通道逐通道量化,int8模式下batch固定为1。TFLite规格本身不提供dilation、group和output_padding属性,需要这些功能时应改用ONNX格式。紧随其后的Mul(常量)会在转换期被吸收并改写权重;Relu不做融合,作为独立节点保留。
表 1 TransposeConv参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
output_shape
|
input
|
tensor (int32)
|
输出形状,为常量输入,由转换器消费。
|
规格约束:形状为[4],必需(TFLite规格要求)
|
input
|
input
|
tensor (float32)
|
数据输入张量。
|
规格约束:维度为4D,NHWC排布,静态shape,batch=1
|
filter
|
input
|
tensor (float32)
|
权重常量,布局为[输出通道, 核高, 核宽, 输入通道]。
|
规格约束:维度为4D,权重布局由转换器自动重排
|
bias
|
input
|
tensor (float32)
|
可选偏置输入,默认无。
|
规格约束:形状为[OC],存在时节点为四输入
|
output
|
output
|
tensor (float32/int8)
|
转置卷积输出张量。
|
规格约束:形状为[N, oH, oW, OC],NHWC排布,oH/oW按功能描述中的公式计算;支持FP32和全量化INT8转换
|
padding
|
attribute
|
enum
|
填充模式。
|
配置范围:SAME(自动补边)、VALID(不补边,以已计算为准);必需属性
|
stride_h/stride_w
|
attribute
|
int
|
高、宽方向的空间步长。
|
规格约束:每个大于等于1;必需属性
|
fused_activation_function
|
attribute
|
enum
|
融合激活函数。
|
本实现不启用
|
ONNX算子规格参考
Conv
功能描述
基于一个filter模板对3D或4D输入进行卷积计算。
参数说明
表 1 Conv参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为3D或4D,格式为NCW/NCHW。
|
-
|
W
|
input
|
tensor
|
权重张量,维度为3D或4D。
|
规格约束:权重为离线常量
|
B
|
input
|
tensor
|
偏置张量,维度为1D。
|
规格约束:偏置为离线常量
|
Y
|
output
|
tensor
|
输出张量,维度为3D或4D,格式为NCW/NCHW。
|
-
|
auto_pad
|
attribute
|
string
|
指定padding的类型。
|
规格约束:仅支持NOTSET
|
dilations
|
attribute
|
list(int)
|
每个轴上的扩张系数。
|
-
|
group
|
attribute
|
int
|
在输入输出channel上划分的分组个数。
|
规格约束:仅支持输入为1的情况
|
kernel_shape
|
attribute
|
list(int)
|
kernel沿各轴的大小。
|
-
|
pads
|
attribute
|
list(int)
|
各轴前后填充零的个数。
|
-
|
strides
|
attribute
|
list(int)
|
各个方向上kernel的移动步长。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
支持INT8输入/权重/输出、INT32 bias、rank为4、group为1、3x3卷积、无融合激活或融合ReLU;权重为OHWI格式,支持per-tensor或per-output-channel量化 |
FP32 |
支持 |
支持rank为4、batch为1、无bias、无融合激活、stride和dilation均为1的depthwise等价卷积;要求group=input_channel=output_channel,权重为OHWI格式且I=1 |
Conv3D
功能描述
基于5D权重对5D输入进行三维卷积计算。该算子为ONNX规格,支持RISCV Micro目标和x86目标,source entry为ONNX Conv;转换器按输入和权重rank自动识别为Conv3D。输入X布局为NCDHW,输出布局为NCDHW。
float32模型可通过全量化生成int8数据通路。原生int8/int32模型不作为该规格支持范围。
参数说明
表 1 Conv3D参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
X |
input |
tensor (float32/int8) |
输入张量,维度为5D,格式为NCDHW。 |
支持float32模型;float32模型可通过全量化生成int8数据通路。 |
W |
input |
tensor (float32/int8) |
权重张量,维度为5D。 |
规格约束:权重必须为initializer离线常量。 |
B |
input |
tensor (float32/int32) |
偏置张量,维度为1D。 |
可选输入;偏置必须为initializer离线常量;无bias时按0处理。 |
Y |
output |
tensor (float32/int8) |
输出张量,维度为5D,格式为NCDHW。 |
数据类型与执行通路一致。 |
auto_pad |
attribute |
string |
指定padding的类型。 |
规格约束:仅支持NOTSET。 |
dilations |
attribute |
list(int) |
每个空间轴上的扩张系数。 |
规格约束:仅支持[1, 1, 1]。 |
group |
attribute |
int |
在输入输出channel上划分的分组个数。 |
规格约束:仅支持1。 |
kernel_shape |
attribute |
list(int) |
kernel沿D/H/W轴的大小。 |
缺省时按权重空间维推导。 |
pads |
attribute |
list(int) |
D/H/W三个空间轴前后填充零的个数。 |
支持对称与非对称pads;缺省为全0。 |
strides |
attribute |
list(int) |
D/H/W三个方向上kernel的移动步长。 |
支持1或2;缺省为[1, 1, 1]。 |
说明:
ONNX Conv3D通过ONNX Conv的5D输入和5D权重识别,不是独立的ONNX算子名。pads按ONNX格式[D_begin, H_begin, W_begin, D_end, H_end, W_end]解析,支持逐维前后填充不同。
不支持group大于1、dilations不等于[1, 1, 1]、auto_pad不等于NOTSET的场景,命中不支持规格时转换期报错,不生成模型。
关键场景分析
使用场景 |
什么时候会遇到 |
软件行为与限制 |
ONNX基本三维卷积 |
NCDHW模型常规导出 |
按strides/pads正向卷积,输出NCDHW。 |
ONNX缺省属性 |
节点未写kernel_shape、strides或pads |
分别按权重空间维、[1, 1, 1]、全0推导。 |
ONNX非对称pads |
前后填充不同,如[2, 1, 0, 0, 1, 2] |
解析期重排为逐维前后填充,独立填充。 |
无bias两输入节点 |
Conv节点仅X/W输入 |
偏置按0处理。 |
全量化int8通路 |
float32模型 + FULL_QUANT |
转换后使用int8数据通路执行,requant按乘法量化因子q=round(acc * mult) + zp计算。 |
不支持规格命中 |
group大于1、dilations不等于[1, 1, 1]、auto_pad不等于NOTSET |
转换期报错,不生成模型。 |
MaxPool
功能描述
对3D或4D输入进行最大池化计算。
参数说明
说明:
Maxpool双输出规格暂不支持。
表 1 MaxPool参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为3D或4D,格式为NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为3D或4D,格式为NCW/NCHW。
|
-
|
auto_pad
|
attribute
|
string
|
指定padding的类型。
|
配置范围:NOTSET、SAME_UPPER、SAME_LOWER、VALID
|
ceil_mode
|
attribute
|
int
|
输出形状的取整方式。
|
规格约束:仅支持floor
|
dilations
|
attribute
|
list(int)
|
每个轴上的扩张系数。
|
规格约束:仅支持1
|
kernel_shape
|
attribute
|
list(int)
|
kernel沿各轴的大小。
|
-
|
pads
|
attribute
|
list(int)
|
各轴前后填充零的个数。
|
-
|
storage_order
|
attribute
|
int
|
张量存储主序。
|
规格约束:仅支持0
|
strides
|
attribute
|
list(int)
|
各个方向上kernel的移动步长。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
仅支持MaxPool,输入和输出均为INT8 NHWC四维张量,且必须携带量化参数 |
FP32 |
不支持 |
- |
Gemm
功能描述
对两个2D张量进行矩阵乘积运算。
参数说明
表 1 Gemm参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
输入张量,维度为2D,格式为ND。
|
-
|
B
|
input
|
tensor
|
权重张量,维度为2D。
|
规格约束:仅支持离线变量
|
C
|
input
|
tensor
|
偏置张量,维度为1D。
|
规格约束:仅支持离线变量
|
Y
|
output
|
tensor
|
输出张量,维度为2D,格式为ND。
|
-
|
alpha
|
attribute
|
float
|
A×B张量的缩放系数。
|
规格约束:仅支持1.0
|
beta
|
attribute
|
float
|
C的乘数。
|
规格约束:仅支持0.0
|
transA
|
attribute
|
int
|
决定输入A是否转置。
|
配置范围:0、1
|
transB
|
attribute
|
int
|
决定输入B是否转置。
|
配置范围:0、1
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
支持INT8输入/权重/输出,rank为2,A不转置、B转置、无融合激活;可选INT32 bias,权重支持per-tensor或per-output-channel量化 |
FP32 |
支持 |
支持rank为2、2个或3个输入、A不转置、B可转置;融合激活仅支持无融合激活或ReLU,bias元素数量必须等于输出通道数 |
Matmul
功能描述
对两个2D/3D/4D张量进行矩阵乘积运算。
参数说明
说明:
Matmul不支持广播场景。
表 1 Matmul参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
B
|
input
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
支持INT8输入/权重/输出,rank为2,A不转置、B转置、无融合激活;可选INT32 bias,权重支持per-tensor或per-output-channel量化 |
FP32 |
支持 |
支持rank为2、2个或3个输入、A不转置、B可转置;融合激活仅支持无融合激活或ReLU,bias元素数量必须等于输出通道数 |
Softmax
功能描述
计算指定维度的归一化Softmax概率分布。
参数说明
说明:
当Softmax维度较大时,int8量化损失较大,推荐使用fp32模式的算子,关闭cfg中的enable_all_ops选项(仅保留矩阵运算类算子的量化)。
表 1 Softmax参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axis
|
attribute
|
int
|
Softmax的计算轴。
|
-rank(input)<=axis
|
Relu
功能描述
对输入张量做Relu激活函数运算。
参数说明
表 1 Relu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
Activation训练反向仅支持ReLU,输入和输出均为INT8且必须携带量化参数 |
FP32 |
支持 |
Activation训练反向仅支持ReLU |
Tan
功能描述
对输入张量中的每个元素计算正切函数。输入数据按弧度解释,输出张量的Shape与输入张量相同。
正切函数公式为:tan(x) = sin(x) / cos(x),其中 cos(x) 不等于 0。
正切函数的极点位于 x = π/2 + kπ(k 为整数)。在极点处正切函数没有有限值,接近极点时输出变化剧烈,数值误差会被显著放大。
参数说明
表 1 Tan参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制,输入值按弧度解释。
|
FP32;全量化推理时为INT8,并且必须携带量化参数。
|
y
|
output
|
tensor
|
输出张量,Shape与输入相同,逐元素保存正切计算结果。
|
FP32输出为FP32;全量化推理时为INT8,重新量化后可能饱和到[-128, 127]。
|
推理支持规格
推理模式 |
支持情况 |
规格约束 |
FP32 |
支持 |
单输入、单输出,逐元素计算,输入和输出Shape一致;输入按弧度解释。 |
全量化 INT8 |
支持 |
输入范围应受控并远离所有极点,极点附近不保证高精度。 |
限制说明
Tan不包含可配置属性,仅支持单输入和单输出。
当前实现不支持FP16、FP64和BF16数据类型。
极点位置为 π/2 + kπ 。由于 tan'(x) = 1 / cos²(x) ,输入越接近极点,微小的输入误差越可能造成很大的输出误差。
在全量化INT8路径中,输入量化误差可能将值推向或跨过极点,输出重新量化还可能发生饱和。因此,要求极点附近精度或输入范围未知时,建议使用FP32;INT8仅适合明确远离极点的受控输入范围。
Tanh
功能描述
对输入张量做Tanh激活函数运算。
参数说明
表 1 Tanh参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Sigmoid
功能描述
对输入张量做Sigmoid激活函数运算。
参数说明
表 1 Sigmoid参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Reshape
功能描述
改变Tensor的Shape,但不改变其排布。
参数说明
表 1 Reshape参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
-
|
shape
|
input
|
tensor (int64)
|
Shape张量,转换后的Shape。
|
所有元素之积与input包含的元素个数相等
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
-
|
allowzero
|
attribute
|
int
|
判断是否对目标形状做适配(默认0)。
|
仅支持0
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
输入和输出元素数量必须一致,且输入和输出为INT8或INT32 |
FP32 |
支持 |
输入和输出元素数量必须一致,且为FP32静态非空张量 |
Mul
功能描述
计算两个矩阵逐点相乘。
参数说明
说明:
Mul支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Mul参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
B
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
C
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU |
Add
功能描述
计算两个矩阵逐点相加。
参数说明
说明:
Add支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Add参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
B
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
C
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU |
Sub
功能描述
计算两个矩阵逐点相减。
参数说明
说明:
Sub支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Sub参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
B
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
C
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU |
Gather
功能描述
根据指定索引,从输入张量的指定轴上提取元素,组合成新张量。
参数说明
表 1 Gather参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
-
|
index
|
input
|
tensor (int32)
|
索引张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
-
|
axis
|
attribute
|
int
|
输入张量被切分的轴。
|
-rank(data)<=axis
|
Split
功能描述
对张量分割按照某一轴平均或非平均切分成若干份。
参数说明
表 1 Split参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
-
|
outputs
|
output
|
varList(tensor)
|
输出张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
-
|
num_outputs
|
attribute
|
int
|
分割的数量。
|
(0, split_dim]
|
axis
|
attribute
|
int
|
被分割的轴。
|
维度索引
|
split
|
attribute
|
tensor
|
具体每一份分割的维度。
|
[n1, n2, ..., ni],∑ni = 轴的值,n > 0
|
Concat
功能描述
将多个张量拼接成某一个张量。
参数说明
表 1 Concat参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
inputs
|
input
|
varList(tensor)
|
输入张量列表,内部各张量维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
规格约束:列表中各张量在指定轴上元素个数相等
|
concat_result
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
-
|
axis
|
attribute
|
int
|
指定沿着哪个轴进行连接。
|
规格约束:-rank(data)≤axis
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
仅支持2个输入和1个输出;输入和输出rank必须相同且非空,非axis维度一致,axis维度等于两个输入对应维度之和 |
AveragePool
功能描述
对3D或4D输入进行平均池化计算。
参数说明
表 1 AveragePool参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为3D或4D,格式为NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为3D或4D,格式为NCW/NCHW。
|
-
|
auto_pad
|
attribute
|
string
|
指定padding的类型。
|
配置范围:NOTSET、SAME_UPPER、SAME_LOWER、VALID
|
ceil_mode
|
attribute
|
int
|
输出形状的取整方式。
|
仅支持floor
|
dilations
|
attribute
|
list(int)
|
每个轴上的扩张系数。
|
仅支持1
|
kernel_shape
|
attribute
|
list(int)
|
kernel沿各轴的大小。
|
-
|
pads
|
attribute
|
list(int)
|
各轴前后填充零的个数。
|
-
|
storage_order
|
attribute
|
int
|
张量存储主序。
|
仅支持0
|
strides
|
attribute
|
list(int)
|
各个方向上kernel的移动步长。
|
-
|
InstanceNormalization
功能描述
对3D输入张量做归一化计算。
参数说明
说明:
暂时只支持1D,仅支持float类型,暂不支持int8类型。
表 1 InstanceNormalization参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为3D,格式为NCW。
|
-
|
scale
|
input
|
tensor
|
输入张量的放缩系数,维度为1D。
|
-
|
B
|
input
|
tensor
|
偏置向量,维度为1D。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为3D,格式为NCW。
|
-
|
epsilon
|
attribute
|
float
|
用于避免除零溢出(默认1e-5)。
|
-
|
LSTM
功能描述
一种循环神经网络,用于捕捉输入的时序数据长期依赖关系。
参数说明
说明:
仅支持float类型,暂不支持int8类型。
表 1 LSTM参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入时序数据,维度为3D,格式为NCW。
|
规格约束:作为在线变量
|
W
|
input
|
tensor
|
门的权重张量,维度为3D,格式为NCW。
|
规格约束:离线常量
|
R
|
input
|
tensor
|
循环权重张量,维度为3D,格式为NCW。
|
规格约束:离线常量
|
B
|
input
|
tensor
|
输入门偏置张量,维度为2D,格式为ND。
|
规格约束:离线常量
|
sequence_lens
|
input
|
tensor
|
确定每个批数据中时序长度。
|
暂不支持配置
|
initial_h
|
input
|
tensor
|
隐藏层初始值,维度为3D,格式为NCW。
|
规格约束:作为在线变量
|
initial_c
|
input
|
tensor
|
细胞层初始值,维度为3D,格式为NCW。
|
规格约束:作为在线变量
|
P
|
input
|
tensor
|
窥视孔权重向量。
|
暂不支持配置
|
Y
|
output
|
tensor
|
隐藏层所有中间输出值张量拼接后的向量,维度为4D,格式为NCHW。
|
规格约束:作为在线输出变量
|
Y_h
|
output
|
tensor
|
隐藏层输出向量,维度为3D,格式为NCW。
|
规格约束:作为在线输出变量
|
Y_c
|
output
|
tensor
|
细胞层输出向量,维度为3D,格式为NCW。
|
规格约束:作为在线输出变量
|
activation_alpha
|
attribute
|
list(float)
|
对LSTM激活函数结果做放缩(默认0.01)。
|
-
|
activation_beta
|
attribute
|
list(float)
|
对LSTM激活函数结果做偏置(默认0.01)。
|
-
|
activations
|
attribute
|
list(string)
|
LSTM激活函数类型。
|
暂不支持配置
|
clip
|
attribute
|
float
|
梯度裁剪阈值。
|
暂不支持配置
|
direction
|
attribute
|
string
|
指定LSTM处理输入数据的方式(默认'forward')。
|
暂不支持配置
|
hidden_size
|
attribute
|
int
|
隐藏层大小。
|
-
|
input_forget
|
attribute
|
int
|
是否对输入和遗忘门进行耦合(默认0)。
|
暂不支持配置
|
layout
|
attribute
|
int
|
确定输入数据的排布格式,取值范围0或1(默认0)。
|
暂不支持配置
|
Tile
功能描述
对2D/3D/4D输入沿指定维度做复制扩展。
参数说明
表 1 Tile参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
repeats
|
input
|
list(int)
|
指定每个维度复制次数。
|
规格约束:repeats为离线常量
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Pad
功能描述
对输入张量边界做填充。
参数说明
表 1 Pad参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
规格约束:mode=constant的int8量化场景仅支持4D张量输入
|
pads
|
input
|
list(int)
|
指定各输入维度填充范围。
|
规格约束:pads为离线常量,pads[i]
pads[i]非负
|
constant_value
|
input
|
int
|
自定义填充常量。
|
规格约束:constant_value为离线常量
|
axes
|
input
|
list(int)
|
指定需要填充的轴。
|
暂不支持配置
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
mode
|
attribute
|
string
|
指定填充模式。
|
配置范围:constant、reflect、edge
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
仅支持CONSTANT模式;rank为1~6,要求normalized paddings、非负padding和正静态shape,输出shape必须等于输入shape加padding |
Resize
功能描述
对输入张量按照指定填充模式做缩放。
参数说明
表 1 Resize参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为4D,格式为NCHW。
|
-
|
roi
|
input
|
list(int)
|
指定每个维度复制次数。
|
暂不支持配置
|
scales
|
input
|
list(float)
|
自定义填充常量。
|
规格约束:离线常量,NC轴保持1.0。fp32仅支持out_dim为整数,int8不支持配置,scales为离线常量,与sizes必须配置且仅配置一个
|
sizes
|
input
|
list(int)
|
指定需要填充的轴。
|
规格约束:离线常量,NC轴同输入张量保持一致,sizes为离线常量
|
Y
|
output
|
tensor
|
输出张量,维度为4D,格式为NCHW。
|
-
|
antialias
|
attribute
|
int32
|
默认值:0。抗锯齿开关,用于平滑缩小图像边缘锯齿。
|
暂不支持配置
|
axes
|
attribute
|
list(int)
|
指定缩放的维度轴索引。
|
暂不支持配置
|
coordinate_transformation_mode
|
attribute
|
string
|
默认值:"half_pixel"。指定坐标转换模式,控制像素映射关系。
|
配置范围:
'half_pixel'、"align_corners"、"asymmetric"
|
cubic_coeff_a
|
attribute
|
float
|
默认值:"-0.75"。三次插值系数,影响插值平滑程度。
|
暂不支持配置
|
exclude_outside
|
attribute
|
int
|
默认值:"0"。边界处理开关,是否排除外部像素。
|
暂不支持配置
|
extrapolation_value
|
attribute
|
float
|
默认值:"0.0"。外推填充值,越界时使用的数值。
|
暂不支持配置
|
keep_aspect_ratio_policy
|
attribute
|
string
|
默认值:"stretch"。保持高宽比策略,缩放比例计算方式。
|
暂不支持配置
|
mode
|
attribute
|
string
|
默认值:"nearest"。指定缩放插值模式。
|
配置范围:
"nearest"、"linear"
|
nearest_mode
|
attribute
|
string
|
默认值:"round_prefer_floor"。
最近邻插值模式下取整函数。
|
配置范围:
"round_prefer_floor"、"round_prefer_ceil"、"floor"
|
Squeeze
功能描述
对输入张量进行shape压缩操作,被压缩维度的dim值必须为1。
参数说明
表 1 Squeeze参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
squeezed
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
axes(可选)
|
attribute
|
list(int)
|
被压缩的轴列表。
|
-Rank(tensor) <= axis < Rank(tensor)
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
输入和输出元素数量必须一致,且输入和输出为INT8或INT32 |
FP32 |
支持 |
输入和输出元素数量必须一致,且为FP32静态非空张量 |
Unsqueeze
功能描述
对多维Tensor进行shape扩展。
参数说明
表 1 Unsqueeze参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
expanded
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
axes(可选)
|
attribute
|
list(int)
|
被扩展的轴列表。
|
-Rank(expanded) <= axis < Rank(expanded)
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
输入和输出元素数量必须一致,且输入和输出为INT8或INT32 |
FP32 |
支持 |
输入和输出元素数量必须一致,且为FP32静态非空张量 |
Flatten
功能描述
对多维Tensor进行维度展平。
参数说明
表 1 Flatten参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
flattened
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
axis
|
attribute
|
int
|
展平终止维度 (不包括),默认为1。
|
-Rank(tensor) <= axis <= Rank(tensor)
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
输入和输出元素数量必须一致,且输入和输出为INT8或INT32 |
FP32 |
支持 |
输入和输出元素数量必须一致,且为FP32静态非空张量 |
Abs
功能描述
对张量的每个元素做绝对值运算。
参数说明
表 1 Abs参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
要求使用FP32静态非空张量 |
Ceil
功能描述
对张量中的每个元素做向上取整操作。
参数说明
表 1 Ceil参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
Cos
功能描述
对张量中的每个元素做余弦操作。
参数说明
表 1 Cos参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
[-1, 1]
|
Exp
功能描述
对张量中的每个元素做指数计算操作。
参数说明
表 1 Exp参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
(0, 正无穷)
|
Floor
功能描述
对张量中的每个元素做向下取整操作。
参数说明
表 1 Floor参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
Log
功能描述
对张量中的每个元素做对数计算操作(底数值为e)。
参数说明
表 1 Log参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
(0, 正无穷)
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
Round
功能描述
对张量中的每个元素做四舍五入操作。
参数说明
表 1 Round参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
-
|
Sin
功能描述
对张量中的每个元素做正弦计算操作。
参数说明
表 1 Sin参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
[-1, 1]
|
Sqrt
功能描述
对张量中的每个元素做平方根计算操作。
参数说明
表 1 Sqrt参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
输入张量,维度不限制。
|
[0, 正无穷)
|
y
|
output
|
tensor
|
输出张量,维度不限制。
|
[0, 正无穷)
|
BatchNormalization
功能描述
对输入张量做批归一化计算。
参数说明
表 1 BatchNormalization参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
scale
|
input
|
tensor
|
输入张量的放缩系数,维度为1D。
|
-
|
B
|
input
|
tensor
|
偏置向量,维度为1D。
|
-
|
input_mean
|
input
|
tensor
|
每个通道的全局均值,维度为1D。
|
-
|
input_var
|
input
|
tensor
|
每个通道的全局方差,维度为1D。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
epsilon
|
attribute
|
float
|
用于避免除零溢出(默认1e-5)。
|
-
|
LayerNormalization
功能描述
对输入张量做层归一化计算。
参数说明
表 1 LayerNormalization参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
scale
|
input
|
tensor
|
输入张量的放缩系数,维度为1D。
|
-
|
B
|
input
|
tensor
|
偏置向量,维度为1D。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
epsilon
|
attribute
|
float
|
用于避免除零溢出(默认1e-5)。
|
-
|
axis
|
attribute
|
int
|
用于指定归一化的维度(默认-1)。
|
规格约束:-Rank(input) <= axis < Rank(input)
|
LpNormalization
功能描述
沿指定轴,用 1 或 2 阶 Lp 范数对输入张量执行归一化计算。
参数说明
表 1 LpNormalization参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
p
|
attribute
|
int
|
用于指定 Lp 范数的阶数。
|
规格约束:只支持取值1或2
|
axis
|
attribute
|
int
|
用于指定归一化的维度(默认-1)。
|
规格约束:-Rank(input) <= axis < Rank(input)
|
Slice
功能描述
从输入张量中沿指定轴提取子张量。
参数说明
表 1 Slice参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
starts
|
input
|
tensor
|
维度为1D,对应 axes 中每个轴的起始索引。
|
规格约束:starts为离线常量
|
ends
|
input
|
tensor
|
维度为1D,对应 axes 中每个轴的结束索引。
|
规格约束:ends为离线常量
|
axes(可选)
|
input
|
tensor
|
维度为1D,指定要切片的轴(默认值为 [0,1,...,r-1])。
|
规格约束:axes为离线常量
|
steps(可选)
|
input
|
tensor
|
维度为1D,对应 axes 中每个轴的切片步长(默认值为[1,1…,1])。
|
规格约束:steps为离线常量
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
支持rank为1~8的FP32静态非空张量;要求full-rank归一化参数,不支持slice mask,step必须为正,不支持空切片 |
GlobalMaxPool
功能描述
对输入张量除通道轴以外进行最大池化操作。
参数说明
表 1 GlobalMaxpool参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为3D/4D,格式为NCW/NCHW。
|
规格约束:仅支持3D、4D
|
Y
|
output
|
tensor
|
输出张量,维度为3D/4D,格式为NCW/NCHW。
|
-
|
GlobalAveragePool
功能描述
对输入张量除通道轴以外进行平均池化操作。
参数说明
表 1 GlobalAveragePool参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为3D/4D,格式为NCW/NCHW。
|
规格约束:仅支持3D、4D
|
Y
|
output
|
tensor
|
输出张量,维度为3D/4D,格式为NCW/NCHW。
|
-
|
Transpose
功能描述
对输入张量进行转置。
参数说明
表 1 Transpose参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
perm
|
attribute
|
tensor
|
输入张量的维度重排顺序。
|
规格约束:不支持perm=[0,3,1,2]、[0,2,3,1]的Transpose单算子转换
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
支持 |
perm必须是合法的int32常量全排列;输入和输出为INT8或INT32,元素数量和rank必须一致 |
FP32 |
支持 |
perm必须是合法的int32常量全排列;输入和输出为FP32静态非空张量,rank为1~19 |
ArgMax
功能描述
在张量的指定维度上,计算并返回最大值对应的位置索引。
参数说明
说明:
仅支持float类型,不支持int8类型。
表 1 ArgMax参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
reduced
|
output
|
tensor (int32)
|
输出张量,维度为1D/2D/3D/4D,格式为N/ND/NCW/NCHW,取决于参数配置。
|
-
|
axis
|
attribute
|
int
|
指定在张量中执行计算逻辑的维度。
|
规格约束:-rank(value)<=axis
|
keepdims
|
attribute
|
int
|
控制是否保留被降维的轴。
|
规格约束:只支持取值0或1。默认为1
|
select_last_index
|
attribute
|
int
|
控制最大值重复时的索引选择策略。为 0 时返回第一个最大值的索引;为 1 时返回最后一个最大值的索引。
|
规格约束:只支持取值0或1。默认为0
|
ArgMin
功能描述
在张量的指定维度上,计算并返回最小值对应的位置索引。
参数说明
说明:
仅支持float类型,不支持int8类型。
表 1 ArgMin参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
reduced
|
output
|
tensor (int32)
|
输出张量,维度为1D/2D/3D/4D,格式为N/ND/NCW/NCHW,取决于参数配置。
|
-
|
axis
|
attribute
|
int
|
指定在张量中执行计算逻辑的维度。
|
规格约束:-rank(value)<=axis
|
keepdims
|
attribute
|
int
|
控制是否保留被降维的轴。
|
规格约束:只支持取值0或1。默认为1
|
select_last_index
|
attribute
|
int
|
控制最小值重复时的索引选择策略。为 0 时返回第一个最小值的索引;为 1 时返回最后一个最小值的索引。
|
规格约束:只支持取值0或1。默认为0
|
Div
功能描述
对两输入张量进行除法运算。
参数说明
表 1 Div参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
B
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
C
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
支持广播兼容shape,rank不超过10;不支持融合激活 |
Mod
功能描述
对两输入张量进行取模运算。
参数说明
说明:
Mod算子不支持量化。
表 1 Mod参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
B
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
C
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
fmod
|
attribute
|
int
|
取模方式,0表示truncate模式,1表示floor模式。
|
配置范围:0/1
|
BitShift
功能描述
BitShift以X作为被移位数据、Y作为移位位数,逐元素执行无符号整数左移或右移运算,位移方向由direction属性指定。支持转换ONNX Opset 18及以上版本中的BitShift算子。
参数说明
说明:
BitShift算子不支持量化,按uint8、uint16、uint32或uint64数据类型执行位移运算。
表 1 BitShift参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor(uint8/uint16/uint32/uint64)
|
被移位的输入张量。
|
必须为静态shape,rank小于16,数据类型必须与Y一致。shape必须与Y满足多方向广播规则。
|
Y
|
input
|
tensor(uint8/uint16/uint32/uint64)
|
移位位数输入张量,每个元素表示对应数据需要移动的位数。
|
必须为静态shape,rank小于16,数据类型必须与X一致。shape必须与X满足多方向广播规则。移位位数大于或等于数据类型位宽时,对应输出为0。
|
Z
|
output
|
tensor(uint8/uint16/uint32/uint64)
|
逐元素位移后的输出张量。
|
数据类型与X、Y一致,shape为X和Y广播后的shape。
|
direction
|
attribute
|
string
|
指定位移方向。
|
必选。LEFT表示左移,RIGHT表示右移。
|
Clip
功能描述
对张量进行最大最小值截断操作。
参数说明
表 1 Clip参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
min
|
input
|
tensor
|
输入张量,维度为标量。
|
-
|
max
|
input
|
tensor
|
输入张量,维度为标量。
|
-
|
Y
|
output
|
int
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
ReduceMax
功能描述
对指定维度的张量进行最大值归约计算。
参数说明
表 1 ReduceMax参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axes
|
input
|
tensor
|
输入张量,维度为1D,指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
reduced
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
keepdims
|
attribute
|
int
|
是否需要保留归约轴的维度。
|
配置范围:0/1
|
noop_with_empty_axes
|
attribute
|
int
|
定义归约轴为空时的行为。
|
规格约束:不支持配置
|
ReduceMin
功能描述
对指定维度的张量进行最小值归约计算。
参数说明
表 1 ReduceMin参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axes
|
input
|
tensor
|
输入张量,维度为1D,指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
reduced
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
keepdims
|
attribute
|
int
|
是否需要保留归约轴的维度。
|
配置范围:0/1
|
noop_with_empty_axes
|
attribute
|
int
|
定义归约轴为空时的行为。
|
规格约束:不支持配置
|
ReduceSum
功能描述
对指定维度的张量进行求和归约计算。
参数说明
表 1 ReduceSum参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axes
|
input
|
tensor
|
输入张量,维度为1D,指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
reduced
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
keepdims
|
attribute
|
int
|
是否需要保留归约轴的维度。
|
配置范围:0/1
|
noop_with_empty_axes
|
attribute
|
int
|
定义归约轴为空时的行为。
|
规格约束:不支持配置
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
支持rank为1~8的FP32静态非空张量;axes必须为int32常量,允许为空表示全维归约,axes必须合法且唯一,输出shape必须匹配keep_dims |
ReduceSumSquare
功能描述
ReduceSumSquare先对data中的元素逐元素平方,再沿axes指定的维度执行求和归约。支持转换ONNX Opset 18及以上版本中的ReduceSumSquare算子。
参数说明
说明:
ReduceSumSquare算子支持非量化FP32推理和全量化INT8推理。
表 1 ReduceSumSquare参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor(float32)
|
参与平方和归约的输入张量。
|
必须为静态shape,rank不超过16。全量化INT8推理时,归约轴数量必须小于16。
|
axes
|
input
|
tensor(int64)
|
指定执行平方和归约的轴。
|
可选的第二个输入,必须为一维离线常量,各轴不能重复。支持单轴、多轴和负轴,每个元素的取值范围为[-rank(data), rank(data))。负轴表示从末维开始计数;缺省或为空时的行为由noop_with_empty_axes确定。
|
reduced
|
output
|
tensor(float32)
|
平方和归约后的输出张量。
|
输出shape由data、axes和keepdims共同确定。
|
keepdims
|
attribute
|
int
|
是否保留被归约的维度。
|
配置范围:0/1,默认值为1。值为0时删除被归约的维度,值为1时将被归约维度的长度保留为1。
|
noop_with_empty_axes
|
attribute
|
int
|
定义axes缺省或为空时的行为。
|
配置范围:0/1,默认值为0。值为0时对所有维度执行平方和归约;值为1时不执行运算,直接输出输入数据。
|
ReduceMean
功能描述
对指定维度的张量进行均值归约计算。
参数说明
表 1 ReduceMean参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axes
|
input
|
tensor
|
输入张量,维度为1D,指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
reduced
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
keepdims
|
attribute
|
int
|
是否需要保留归约轴的维度。
|
配置范围:0/1
|
noop_with_empty_axes
|
attribute
|
int
|
定义归约轴为空时的行为。
|
规格约束:不支持配置
|
训练支持规格
训练模式 |
支持情况 |
规格约束 |
QAS INT8 |
不支持 |
- |
FP32 |
支持 |
支持rank为1~8的FP32静态非空张量;axes必须为int32常量,允许为空表示全维归约,axes必须合法且唯一,输出shape必须匹配keep_dims |
ReduceL1
功能描述
对指定维度的张量进行L1范数归约计算。
参数说明
表 1 ReduceL1参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axes
|
input
|
tensor
|
输入张量,维度为1D,指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input))
|
reduced
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
keepdims
|
attribute
|
int
|
是否需要保留归约轴的维度。
|
配置范围:0/1
|
noop_with_empty_axes
|
attribute
|
int
|
定义归约轴为空时的行为。
|
规格约束:不支持配置
|
ReduceL2
功能描述
对指定维度的张量进行L2范数归约计算。
参数说明
表 1 ReduceL2参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axes
|
input
|
tensor
|
输入张量,维度为1D,指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input))
|
reduced
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
keepdims
|
attribute
|
int
|
是否需要保留归约轴的维度。
|
配置范围:0/1
|
noop_with_empty_axes
|
attribute
|
int
|
定义归约轴为空时的行为。
|
规格约束:不支持配置
|
Cast
功能描述
对输入张量进行数据类型的转换。
参数说明
说明:
Cast算子不支持量化。
表 1 Cast参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、uint8、int8、int32
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、uint8、int8、int32
|
round_mode
|
attribute
|
string
|
转换为 FLOAT8E8M0 类型时的舍入模式配置。
|
规格约束:不支持配置
|
saturate
|
attribute
|
int
|
设定输入值超出目标类型取值范围时的转换行为,仅对float8类型转换有效。
|
规格约束:不支持配置
|
to
|
attribute
|
int
|
指定输入张量元素需要转换的目标数据类型。
|
规格约束:取值仅支持FLOAT、UINT8、INT8、INT32
|
PRelu
功能描述
对输入张量进行参数化 PRelu 激活处理。其在输入为非负值时保持原值,在输入为负值时根据斜率参数进行线性缩放。
参数说明
表 1 PRelu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
待进行 PReLU 激活处理的数据,维度为1D / 2D / 3D / 4D。
|
数据类型仅支持 float32、int8;不限定具体数据格式。
|
slope
|
input
|
tensor
|
负半轴斜率参数,维度为0D / 1D / 2D / 3D / 4D。
|
数据类型仅支持 float32;不限定具体数据格式,但其形状需支持单向广播到 X 。
|
Y
|
output
|
tensor
|
输出张量,维度与 X 一致。
|
数据类型仅支持 float32、int8;维度与 X 一致。
|
说明:
在量化过程中,PReLU 算子的第二输入保留 FP32 格式,以保证负半轴计算精度。
CumSum
功能描述
对输入张量沿指定维度进行累加求和处理,输出结果为该维度上的前缀和。
参数说明
表 1 CumSum参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
x
|
input
|
tensor
|
待进行累加求和处理的输入张量,维度为 1D / 2D / 3D / 4D。
|
数据类型仅支持 float32、int8;不限定具体数据格式。
|
axis
|
input
|
tensor
|
进行累加求和的维度,维度为 0D。
|
数据类型仅支持 int32、int64;取值范围为 [-rank(input), rank(input)),当 axis 为负数时,表示从最后一个维度开始反向索引。
|
y
|
output
|
tensor
|
沿 axis 维度进行累加求和后的结果。
|
数据类型和维度与 x一致。
|
exclusive
|
attribute
|
int
|
是否采用排除当前元素的累加方式。
|
取值范围为 [0 , 1],默认值为0。
|
reverse
|
attribute
|
int
|
是否沿指定维度反向累加。
|
取值范围为 [0 , 1],默认值为0。
|
ReverseSequence
功能描述
对输入张量指定轴前N个数据进行反转。
参数说明
表 1 ReverseSequence参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、uint8、int8、int32
|
sequence_lens
|
input
|
tensor
|
输入张量,维度为1D。
|
数据类型仅支持int32,每个数据均满足0<=seq_len<=input_shape[time_axis]
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、uint8、int8、int32
|
batch_axis
|
attribute
|
int
|
批次轴的序号。
|
默认为1,可支持缺省配置,必须与time_axis不同。仅支持0,1配置。
|
time_axis
|
attribute
|
int
|
反转轴的序号。
|
默认为0,可支持缺省配置,必须与batch_axis不同。仅支持0,1配置。
|
Einsum
功能描述
对输入张量进行简约求和,支持多输入的矩阵乘,对角,旋转,规约等操作。
参数说明
表 1 Einsum参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
inputs
|
input
|
varList(tensor)
|
输入张量列表,内部各张量维度为2D/3D/4D,格式分别为ND、NCW、NCHW。
|
数据类型仅支持float32、uint8、int8、int32
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、uint8、int8、int32
|
equation
|
attribute
|
string
|
转换规则
|
不支持...操作。
|
LeakyRelu
功能描述
对输入张量做LeakyRelu激活函数运算。在输入为非负值时保持原值,在输入为负值时根据缩放系数进行线性缩放。
参数说明
表 1 LeakyRelu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
alpha
|
attribute
|
float
|
负半轴缩放系数
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
HardSwish
功能描述
对输入张量做HardSwish激活函数运算。公式为:Y = X * HardSigmoid(α=1/6, β=0.5, X)
参数说明
表 1 HardSwish参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Swish
功能描述
对输入张量做Swish激活函数运算。公式为:Y = X * sigmoid(alpha * X)
参数说明
表 1 Swish参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
alpha
|
attribute
|
float
|
缩放系数。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
说明:
在ONNX Opset24以上才支持构造Swish算子,对应ONNX版本为1.19.0以上。
And
功能描述
对两个输入张量执行逐元素“与”逻辑运算。
参数说明
说明:
And支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
And算子不支持量化。
表 1 And参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor(bool)
|
左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
B
|
input
|
tensor(bool)
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
C
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Equal
功能描述
对两个输入张量执行逐元素“等于”逻辑运算。
参数说明
说明:
Equal支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Equal参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
B
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
C
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
GreaterOrEqual
功能描述
对两个输入张量执行逐元素“大于等于”逻辑运算。
参数说明
说明:
GreaterOrEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 GreaterOrEqual参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
B
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
C
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Greater
功能描述
对两个输入张量执行逐元素“大于”逻辑运算。
参数说明
说明:
Greater支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Greater参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
B
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
C
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
LessOrEqual
功能描述
对两个输入张量执行逐元素“小于等于”逻辑运算。
参数说明
说明:
LessOrEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 LessOrEqual参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
B
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
C
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Less
功能描述
对两个输入张量执行逐元素“小于”逻辑运算。
参数说明
说明:
Less支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
表 1 Less参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor
|
左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
B
|
input
|
tensor
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
数据类型仅支持float32、bool
|
C
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Not
功能描述
逐元素返回输入张量的取反值。
参数说明
说明:
Not算子不支持量化。
表 1 Not参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor(bool)
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Or
功能描述
对两个输入张量执行逐元素“或”逻辑运算。
参数说明
说明:
Or支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
Or算子不支持量化。
表 1 Or参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor(bool)
|
左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
B
|
input
|
tensor(bool)
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
C
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Xor
功能描述
对两个输入张量执行逐元素“异或”逻辑运算。
参数说明
说明:
Xor支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。
Xor算子不支持量化。
表 1 Xor参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor(bool)
|
左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
B
|
input
|
tensor(bool)
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
C
|
output
|
tensor(bool)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
Dropout
功能描述
对输入张量进行 Dropout 处理。推理场景下,Dropout 等价于 Identity,输出张量与输入张量保持一致,不进行随机屏蔽和缩放处理。
参数说明
表 1 Dropout参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
待进行 Dropout 处理的输入数据。
|
维度为 0D / 1D / 2D / 3D / 4D;数据类型支持 float32、int8;不限定具体数据格式。
|
ratio
|
input
|
scalar / tensor
|
Dropout 屏蔽比例。
|
可选输入;数据类型通常为 float32;取值范围为 [0, 1)。推理场景下该参数不影响输出结果。
|
training_mode
|
input
|
scalar / tensor
|
是否处于训练模式。
|
可选输入;数据类型通常为 bool。为 false 或未配置时表示推理模式,Dropout 等价于 Identity。当前端侧推理场景通常按 false 处理。
|
Y
|
output
|
tensor
|
Dropout 输出结果。
|
维度与 X 一致;数据类型与 X 一致。推理场景下,输出数据与输入数据保持一致。
|
mask
|
output
|
tensor
|
Dropout 随机屏蔽掩码。
|
可选输出;数据类型通常为 bool;维度与 X 一致。推理场景下通常不使用该输出,若框架保留该输出,其值不参与后续推理计算。
|
说明:
暂不支持training_mode为true,暂不支持ratio或training_mode为运行时输入。
Identity
功能描述
对输入张量进行恒等映射处理。该算子不改变输入数据的数值、数据类型和维度信息,输出张量与输入张量保持一致。
参数说明
表 1 Identity参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量。
|
维度为 0D / 1D / 2D / 3D / 4D;数据类型支持 float32、int8;不限定具体数据格式。
|
Y
|
output
|
tensor
|
输出张量。
|
维度与 X 一致;数据类型与 X 一致;输出数据与输入数据保持一致。
|
GatherElements
功能描述
对目标张量的某个轴进行重新取索引,索引为一个与目标张量相同大小的整型张量。
参数说明
表 1 GatherElements参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor(float)
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
indices
|
input
|
tensor(int32)
|
右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
大小必须与data相同
|
output
|
output
|
tensor(float)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axis
|
attribute
|
int
|
重新按照元素取索引的轴。
|
-rank(input) <= axis < rank(input)
|
ReduceLogSum
功能描述
对目标张量进行Reduce操作,Reduce操作为LogSum。
参数说明
表 1 ReduceLogSum参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor(float)
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
reduced
|
output
|
tensor(float)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axes
|
input
|
tensor
|
输入张量,维度为1D,指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
ReduceLogSumExp
功能描述
对目标张量进行Reduce操作,Reduce操作为LogSumExp。
参数说明
表 1 GatherElements参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor(float)
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
reduced
|
output
|
tensor(float)
|
输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
-
|
axes
|
input
|
tensor
|
输入张量,维度为1D,指定归约的轴。
|
规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list
|
Expand
功能描述
对输入张量按目标形状进行扩展运算,扩展规则遵循广播机制。
参数说明
表 1 Expand参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
输入维度需满足广播规则。
|
shape
|
input
|
tensor
|
目标输出形状,一维张量。
|
shape中的维度值需大于0;目标形状需与输入张量形状满足广播规则。
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
输出形状由shape指定。
|
Elu
功能描述
对输入张量做Elu激活函数运算。公式为:Y= X if X >= 0 else alpha * (exp(X)-1)
参数说明
表 1 Elu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
alpha
|
attribute
|
float
|
负值区间饱和值缩放系数,默认值1.0。
|
-
|
DepthToSpace
功能描述
对输入张量维度的深度(通道)维度的数据重排到空间(高、宽)维度。
参数说明
表 1 DepthToSpace参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式分别为NCHW。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式分别为NCHW。
|
-
|
blocksize
|
attribute
|
int
|
从深度维度重组到空间维度的基础块尺寸。
|
规格约束:blocksize>=2, C%blocksize^2 == 0
|
mode
|
attribute
|
string
|
重排模式。
|
配置范围:DCR、CRD
|
SpaceToDepth
功能描述
对输入张量空间(高、宽)维度的数据重排到深度(通道)维度。
参数说明
表 1 SpaceToDepth参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为4D,格式分别为NCHW。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为4D,格式分别为NCHW。
|
-
|
blocksize
|
attribute
|
int
|
从空间维度重组到深度维度的基础块尺寸。
|
规格约束:blocksize>=2, H%blocksize == 0,W%blocksize == 0
|
GRU
功能描述
一种循环神经网络,用于捕捉输入的时序数据长期依赖关系。
参数说明
说明:
仅支持float类型,暂不支持int8类型。
表 1 GRU参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入时序数据,维度为3D,格式为NCW。
|
规格约束:作为在线变量
|
W
|
input
|
tensor
|
门的权重张量,维度为3D,格式为NCW。
|
规格约束:离线常量
|
R
|
input
|
tensor
|
循环权重张量,维度为3D,格式为NCW。
|
规格约束:离线常量
|
B
|
input
|
tensor
|
输入门偏置张量,维度为2D,格式为ND。
|
规格约束:离线常量
|
sequence_lens
|
input
|
tensor
|
确定每个批数据中时序长度。
|
暂不支持配置
|
initial_h
|
input
|
tensor
|
隐藏层初始值,维度为3D,格式为NCW。
|
规格约束:作为在线变量
|
Y
|
output
|
tensor
|
隐藏层所有中间输出值张量拼接后的向量,维度为4D,格式为NCHW。
|
规格约束:作为在线输出变量
|
Y_h
|
output
|
tensor
|
隐藏层输出向量,维度为3D,格式为NCW。
|
规格约束:作为在线输出变量
|
activation_alpha
|
attribute
|
list(float)
|
对LSTM激活函数结果做放缩(默认0.01)。
|
暂不支持配置
|
activation_beta
|
attribute
|
list(float)
|
对LSTM激活函数结果做偏置(默认0.01)。
|
暂不支持配置
|
activations
|
attribute
|
list(string)
|
LSTM激活函数类型。
|
暂不支持配置
|
clip
|
attribute
|
float
|
梯度裁剪阈值。
|
暂不支持配置
|
direction
|
attribute
|
string
|
指定LSTM处理输入数据的方式(默认'forward')。
|
配置范围:forward/reverse/bidirectional
|
hidden_size
|
attribute
|
int
|
隐藏层大小。
|
-
|
layout
|
attribute
|
int
|
确定输入数据的排布格式,取值范围0或1。
|
暂不支持配置
|
linear_before_reset
|
attribute
|
int
|
区分GRU候选隐藏层状态计算范式:值为1代表先对隐藏层做线性变换再与重置门相乘否则咸鱼重置门相乘再做线性变换。
|
配置范围:0或1
|
Gelu
功能描述
对输入张量做Gelu激活函数运算。Gelu(Gaussian Error Linear Unit)基于正态分布累积概率,对输入乘以其概率分布的值实现连续非线性变换,相比传统激活函数在负值区域具有平滑的非零梯度。
参数说明
表 1 Gelu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
approximate
|
attribute
|
string
|
Gelu近似计算模式,默认值"none"。
|
配置范围:只能配置为"none"或"tanh","none"使用erf精确形式计算,"tanh"使用tanh近似算法计算
|
Trilu
功能描述
Trilu(Triangular Upper / Lower)算子用于提取输入张量的三角矩阵部分,将保留区域之外的元素全部置为零。根据配置可提取上三角矩阵或下三角矩阵;对高维张量作用在最后两个维度组成的每一个二维矩阵上,批次维度保持不变。
参数说明
表 1 Trilu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
k
|
input
|
int64
|
对角线偏移量(Diagonal Offset),默认值0。
|
规格约束:离线常量
|
output
|
output
|
tensor
|
输出张量,维度与数据类型与输入严格保持一致。
|
-
|
upper
|
attribute
|
int
|
是否保留上三角区域,默认值1(true)。
|
配置范围:1(true,提取上三角矩阵,下三角置0)、0(false,提取下三角矩阵,上三角置0)
|
Shape
功能描述
获取输入张量的形状信息。
参数说明
表 1 Shape参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
shape
|
output
|
tensor (int64)
|
输出张量,维度为1D,元素为输入张量的各维度大小。
|
-
|
start
|
attribute
|
int
|
指定输出形状切片的起始维度索引(默认0)。
|
-
|
end
|
attribute
|
int
|
指定输出形状切片的结束维度索引(不含,默认输出全部)。
|
-
|
MatMulInteger
功能描述
对两个量化后的整数矩阵进行乘积运算,计算 Y = (A - a_zero_point) * (B - b_zero_point)。
参数说明
表 1 MatMulInteger参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
A
|
input
|
tensor (int8/uint8)
|
量化的左输入矩阵。
|
-
|
B
|
input
|
tensor (int8/uint8)
|
量化的右输入矩阵。
|
-
|
a_zero_point
|
input
|
tensor (int8/uint8)
|
输入A量化零点,可选输入,默认值为0。
|
-
|
b_zero_point
|
input
|
tensor (int8/uint8)
|
输入B量化零点,可选输入,默认值为0。
|
-
|
Y
|
output
|
tensor (int32)
|
去量化乘积结果输出矩阵。
|
-
|
QLinearMatMul
功能描述
对两个INT8量化张量执行矩阵乘法,并使用输出量化参数将INT32累加结果重新量化为INT8输出。计算过程如下:
acc = Σ((a - a_zero_point) × (b - b_zero_point))
y = saturate(round_to_nearest_even(acc × a_scale × b_scale / y_scale) + y_zero_point)
该算子仅支持ONNX格式和RISCV Micro目标,支持ONNX Opset 10及以上版本。转换时复用MatMulFusion算子及其INT8 Micro实现。
参数说明
表 1 QLinearMatMul参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
a |
input |
tensor (int8) |
左输入量化张量。 |
仅支持INT8和2D/3D/4D静态形状。 |
a_scale |
input |
tensor (float32) |
输入a的量化缩放因子。 |
必须是有限正数和常量标量,仅支持per-tensor量化。 |
a_zero_point |
input |
tensor (int8) |
输入a的量化零点。 |
必须是常量标量。 |
b |
input |
tensor (int8) |
右输入量化张量。 |
仅支持INT8和2D/3D/4D静态形状;倒数第二维必须与a的最后一维匹配,不支持批次维广播。 |
b_scale |
input |
tensor (float32) |
输入b的量化缩放因子。 |
必须是有限正数常量;支持标量per-tensor量化,或长度等于b最后一维的1D per-column量化。 |
b_zero_point |
input |
tensor (int8) |
输入b的量化零点。 |
必须为常量,形状与b_scale一致。 |
y_scale |
input |
tensor (float32) |
输出y的量化缩放因子。 |
必须是有限正数和常量标量,仅支持per-tensor量化。 |
y_zero_point |
input |
tensor (int8) |
输出y的量化零点。 |
必须是常量标量。 |
y |
output |
tensor (int8) |
重新量化后的矩阵乘法结果。 |
仅支持INT8和2D/3D/4D静态形状。 |
说明:
a、b和y仅支持INT8,不支持UINT8。所有scale和zero point必须在模型转换时可确定,且每组scale和zero point的元素个数必须一致。输入a和输出y仅支持per-tensor量化;输入b支持per-tensor或按输出列per-column量化。
当模型使用QuantizeLinear和DequantizeLinear作为浮点网络与QLinearMatMul之间的边界时,边界算子仅支持常量标量float32 scale和常量标量int8 zero point,转换后分别作为FP32到INT8、INT8到FP32的QuantDTypeCast执行。
QLinearMatMul源图已经包含量化参数,转换时不能再次启用全量化,否则转换器会按重复量化处理并终止转换。
GatherND
功能描述
根据indices中的多维坐标,从data中收集元素或切片。设索引深度为D=indices.shape[-1],输出shape为indices.shape[:-1]+data.shape[D:],输出数据类型与data一致。
该算子仅支持ONNX格式和RISCV Micro目标,source entry为ONNX GatherND,转换后映射为GatherNd。支持FP32、INT32、BOOL数据通路;float32模型可通过全量化生成INT8数据通路。
参数说明
表 1 GatherND参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
data |
input |
tensor (float32/int32/bool/int8) |
被收集元素或切片的数据张量。 |
必须为静态形状,rank不超过16;float32模型支持非量化和全量化INT8通路。 |
indices |
input |
tensor (int32/int64) |
多维索引张量,最后一维保存索引元组。 |
必须为静态形状;rank(indices)必须大于等于1且不超过16;D必须大于0且小于等于rank(data);坐标值必须大于等于0且小于data对应维度大小。 |
output |
output |
tensor |
按索引元组收集得到的元素或切片,数据类型与data一致。 |
必须为静态形状;shape为indices.shape[:-1]+data.shape[D:];输出元素数、步长和偏移量必须在有符号32位整数范围内。 |
说明:
GatherND无属性。indices仅用于定位数据,不参与量化;INT8通路来自float32模型的全量化转换,不支持将indices量化。
关键场景分析
使用场景 |
什么时候会遇到 |
软件行为与限制 |
ONNX基本GatherND |
ONNX模型导出GatherND |
按indices最后一维表示的多维坐标从data收集元素或切片。 |
收集标量元素 |
D等于rank(data) |
输出shape为indices.shape[:-1]。 |
收集尾部切片 |
D小于rank(data) |
输出shape为indices.shape[:-1]+data.shape[D:]。 |
全量化int8通路 |
float32模型 + FULL_QUANT |
data/output使用INT8通路,indices保持INT32或INT64,不参与量化。 |
不支持规格命中 |
indices为负数、越界、D大于rank(data)、shape非静态或中间计算溢出INT32 |
转换期或运行期报错,不生成有效结果。 |
Scatter
功能描述
先复制data得到输出,再沿axis使用indices指定的位置,以updates中的对应值进行覆盖。该算子转换后复用ScatterElements及其Micro实现。
该算子仅支持ONNX格式和RISCV Micro目标,适用于ONNX Opset 9和10;ONNX从Opset 11起已废弃Scatter,建议新模型使用ScatterElements。支持FP32和全量化INT8通路。
参数说明
表 1 Scatter参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
data |
input |
tensor (float32/int8) |
提供输出初值的数据张量。 |
必须为静态形状,rank为1~16;支持FP32和全量化INT8。 |
indices |
input |
tensor (int32/int64) |
指定axis维上的目标位置。 |
必须与data具有相同rank,并与updates形状完全一致;索引范围为[-data.shape[axis], data.shape[axis]-1]。 |
updates |
input |
tensor (float32/int8) |
覆盖目标位置的新值。 |
数据类型通路与data一致,形状必须与indices一致;除axis外,各维大小不能超过data对应维度。 |
axis |
attribute |
int |
指定执行离散更新的维度。 |
默认0,范围为[-rank(data), rank(data)-1]。 |
output |
output |
tensor (float32/int8) |
完成覆盖更新后的结果。 |
形状与data一致。 |
说明:
Scatter仅支持覆盖语义。负索引按对应维度从尾部计数;索引越界时运行失败。相同输出位置不应出现重复索引,否则最终覆盖值依赖更新顺序。
ScatterElements
功能描述
先复制data得到输出,再逐元素读取indices,在axis维替换当前坐标,并使用updates中的对应元素覆盖该输出位置。
该算子仅支持ONNX格式和RISCV Micro目标,支持ONNX Opset 11及以上版本,支持FP32和全量化INT8通路。
参数说明
表 1 ScatterElements参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
data |
input |
tensor (float32/int8) |
提供输出初值的数据张量。 |
必须为静态形状,rank为1~16;支持FP32和全量化INT8。 |
indices |
input |
tensor (int32/int64) |
逐元素指定axis维上的目标位置。 |
必须与data具有相同rank,并与updates形状完全一致;索引范围为[-data.shape[axis], data.shape[axis]-1]。 |
updates |
input |
tensor (float32/int8) |
覆盖目标位置的新值。 |
数据类型通路与data一致,形状必须与indices一致;除axis外,各维大小不能超过data对应维度。 |
axis |
attribute |
int |
指定执行离散更新的维度。 |
默认0,范围为[-rank(data), rank(data)-1]。 |
reduction |
attribute |
string |
指定重复位置的归约方式。 |
仅支持none;不支持add、mul、max和min。 |
output |
output |
tensor (float32/int8) |
完成覆盖更新后的结果。 |
形状与data一致。 |
说明:
ScatterElements仅支持reduction=none。负索引按对应维度从尾部计数;索引越界时运行失败。reduction=none时相同输出位置不应出现重复索引。
ScatterND
功能描述
先复制data得到输出,再将indices最后一维表示的K维坐标作为目标位置,使用updates覆盖对应元素或完整尾部切片。updates.shape必须等于indices.shape[:-1]+data.shape[K:]。
该算子仅支持ONNX格式和RISCV Micro目标,支持ONNX Opset 11及以上版本,支持FP32和全量化INT8通路。转换时映射为ScatterNdUpdate及其Micro实现。
参数说明
表 1 ScatterND参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
data |
input |
tensor (float32/int8) |
提供输出初值的数据张量。 |
必须为静态形状,rank为1~16;支持FP32和全量化INT8。 |
indices |
input |
tensor (int32/int64) |
多维索引张量,最后一维保存K维坐标元组。 |
必须为静态形状,rank为1~16;K必须大于0且不超过data的rank;每维索引范围为[-data.shape[i], data.shape[i]-1]。 |
updates |
input |
tensor (float32/int8) |
覆盖目标元素或尾部切片的新值。 |
数据类型通路与data一致,必须为静态形状,shape等于indices.shape[:-1]+data.shape[K:]。 |
reduction |
attribute |
string |
指定重复位置的归约方式。 |
仅支持none;不支持add、mul、max和min。 |
output |
output |
tensor (float32/int8) |
完成覆盖更新后的结果。 |
形状与data一致。 |
说明:
ONNX ScatterND包含data、indices和updates三个输入,与TFLite ScatterND的indices、updates、shape输入形式不同。负索引按对应维度从尾部计数;索引越界时运行失败。reduction=none时不应使用重复索引。INT8通路仅支持per-tensor量化。
TopK
功能描述
获取输入张量中沿指定维度前K个最大值,并返回其值及对应的索引。
参数说明
表 1 TopK参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度不限制。
|
规格约束:不支持int64
|
K
|
input
|
tensor (int64)
|
需要获取的TopK个数,标量。
|
-
|
Values
|
output
|
tensor
|
TopK值张量,axis维度为K。
|
-
|
Indices
|
output
|
tensor (int64)
|
TopK值的索引张量,axis维度为K。
|
-
|
axis
|
attribute
|
int
|
指定选取TopK的维度(默认-1,即最后一维)。
|
-
|
largest
|
attribute
|
int
|
控制返回最大值(1)还是最小值(0)。
|
默认1
|
sorted
|
attribute
|
int
|
控制返回结果是否按序排列(1)或不排序(0)。
|
默认1
|
Erf
功能描述
对输入张量逐元素计算高斯误差函数值。
参数说明
表 1 Erf参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
output
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
HardSigmoid
功能描述
对输入张量做HardSigmoid激活函数运算。公式为:Y=max(0, min(1, α·X+β))
参数说明
表 1 HardSigmoid参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
alpha
|
attribute
|
float
|
激活曲线斜率调控系数,默认值0.2。
|
-
|
beta
|
attribute
|
float
|
激活曲线偏移调控系数,默认值0.5。
|
-
|
Celu
功能描述
对输入张量做Celu激活函数运算。公式为:Y=max(0, x)+min(0, α·(exp(x/α)-1))
参数说明
表 1 Celu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
Y
|
output
|
tensor
|
输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。
|
-
|
alpha
|
attribute
|
float
|
Celu负值区间系数,默认值1.0。
|
规格约束:alpha>0。
|
Selu
功能描述
对输入张量逐元素执行缩放指数线性激活。计算公式如下:
y = gamma × x, x > 0
y = gamma × alpha × (exp(x) - 1), x <= 0
该算子仅支持ONNX格式,转换时复用Activation算子。支持FP32和全量化INT8通路;INT8通路使用256项查找表执行。
参数说明
表 1 Selu参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
X |
input |
tensor (float32/int8) |
待执行Selu激活的输入张量。 |
逐元素计算;支持FP32和全量化INT8通路。 |
alpha |
attribute |
float |
控制负值区间的指数缩放。 |
可选,默认值为1.6732631921768188。 |
gamma |
attribute |
float |
控制整体输出缩放。 |
可选,默认值为1.0507009873554805。 |
Y |
output |
tensor (float32/int8) |
Selu激活结果。 |
数据类型和形状与对应执行通路的输入一致。 |
说明:
全量化INT8通路使用per-tensor输入和输出量化参数,在模型转换阶段生成覆盖全部INT8输入值的查找表。
Max
功能描述
对输入的多个张量在对应位置取最大值。
参数说明
表 1 Max参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data_0
|
input
|
varList(tensor)
|
输入张量列表(≥1),维度为 2D/3D/4D,ND/NCW/NCHW 数据排布。
|
输入张量数量可变(1 至 N),维度可不一致,遵循多方向广播规则对齐
|
max
|
output
|
tensor
|
输出张量,维度为广播后的最大维度。
|
-
|
Min
功能描述
对输入的多个张量在对应位置取最小值。
参数说明
表 1 Min参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data_0
|
input
|
varList(tensor)
|
输入张量列表(≥1),维度为 2D/3D/4D,ND/NCW/NCHW 数据排布。
|
输入张量数量可变(1 至 N),维度可不一致,遵循多方向广播规则对齐
|
min
|
output
|
tensor
|
输出张量,维度为广播后的最大维度。
|
-
|
Sum
功能描述
对输入的多个张量在对应位置逐元素求和。
参数说明
表 1 Sum参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data_0
|
input
|
tensor
|
输入张量列表(≥1),维度为 2D/3D/4D,ND/NCW/NCHW 数据排布。
|
输入张量数量可变(1 至 N),维度可不一致,遵循多方向广播规则对齐;仅支持浮点类型
|
sum
|
output
|
tensor
|
输出张量,维度为广播后的最大维度。
|
-
|
Constant
功能描述
静态常量生成算子,输出一个由属性指定的常量张量,其值和形状在模型定义时确定,推理时不发生变化。该算子无输入,仅有一个输出,通过属性指定常量值。仅有ONNX规格。
参数说明
表 1 Constant参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
output
|
output
|
tensor
|
输出常量张量。
|
形状和数据类型由 value 属性完全确定
|
value
|
attribute
|
tensor
|
常量张量的值(通用形式)。
|
支持任意形状和数据类型的张量
|
value_float
|
attribute
|
float
|
标量 float32 常量值。
|
等价于 0D 张量
|
value_floats
|
attribute
|
float[]
|
1D float32 常量值列表。
|
等价于 1D 张量
|
value_int
|
attribute
|
int
|
标量 int64 常量值(lite支持int32)。
|
等价于 0D 张量
|
value_ints
|
attribute
|
int[]
|
1D int64 常量值列表。
|
等价于 1D 张量
|
说明:
必须且只能指定以上属性(value/value_float/value_floats/value_int/value_ints)中的一个来定义常量值。
ConstantOfShape
功能描述
常量填充算子,根据输入张量指定的目标形状,生成一个所有元素值均相同的常量张量。仅有ONNX规格。
参数说明
表 1 ConstantOfShape参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor(int64)
|
1D int64 张量,指定输出张量的各维度大小。
|
维度值均大于 0,维度数 1~8(lite支持1~4)
|
output
|
output
|
tensor
|
按目标形状生成的常量填充张量。
|
数据类型由 value 属性的 TensorProto 推断
|
value
|
attribute
|
tensor
|
填充常量值(TensorProto),默认值标量 0(float32)。
|
可选;省略时填充 0,类型为 float32
|
ReduceProd
功能描述
沿指定轴计算输入张量所有元素的乘积。
参数说明
表 1 ReduceProd参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
data
|
input
|
tensor
|
输入数据张量,维度为 2D/3D/4D,ND/NCW/NCHW 数据排布。
|
-
|
axes
|
input
|
tensor
|
1D 张量,指定归约轴列表,范围 [-r, r-1](r = rank(data))。
|
不提供或为空时,由 noop_with_empty_axes 控制行为
|
reduced
|
output
|
tensor
|
归约后的输出张量。
|
shape 取决于 axes、keepdims 和 noop_with_empty_axes
|
keepdims
|
attribute
|
int
|
是否保持归约轴维度(大小为 1),默认值 1(true)。
|
0:消除维度;1:保持维度
|
noop_with_empty_axes
|
attribute
|
int
|
空 axes 时的行为控制,默认值 0。
|
0:归约所有轴;1:不归约(恒等输出)
|
Hardmax
功能描述
沿指定维度选取第一个最大值所在位置,输出与输入同形状的one-hot张量:第一个最大值位置为1,其余位置为0。
参数说明
说明:
Hardmax算子不支持量化。
表 1 Hardmax参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度不限制。
|
-
|
axis
|
attribute
|
int
|
指定选取最大值的维度(默认-1,即最后一维)。
|
规格约束:-r<=axis<=r-1,r为输入张量的秩。默认为-1
|
Y
|
output
|
tensor
|
输出张量,与输入同形状:沿axis的第一个最大值位置为1,其余为0。
|
-
|
Where
功能描述
根据条件张量从两个输入张量中逐元素选择输出:条件为true时取X中对应元素,否则取Y中对应元素;condition、X、Y支持广播。
参数说明
表 1 Where参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
condition
|
input
|
tensor
|
条件张量,维度不限制。
|
规格约束:数据类型为bool
|
X
|
input
|
tensor
|
条件为true时选择的输入张量。
|
-
|
Y
|
input
|
tensor
|
条件为false时选择的输入张量。
|
-
|
output
|
output
|
tensor
|
输出张量,形状为三输入按广播规则对齐后的形状。
|
-
|
ConvInteger
功能描述
对量化后的整数输入张量和卷积核执行卷积运算,计算 Y = (X - x_zero_point) * (W - w_zero_point),输出int32类型的整数累加结果。
参数说明
表 1 ConvInteger参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor (uint8)
|
量化的输入张量,格式为NCHW。
|
规格约束:维度为4D,仅支持uint8
|
W
|
input
|
tensor (uint8)
|
量化的卷积核。
|
规格约束:维度为4D,形状为[M, C/group, kH, kW],仅支持uint8
|
x_zero_point
|
input
|
tensor (uint8)
|
输入X的量化零点,可选输入,默认值为0。
|
规格约束:元素个数必须为1,不支持逐通道零点
|
w_zero_point
|
input
|
tensor (uint8)
|
卷积核W的量化零点,可选输入,默认值为0。
|
规格约束:元素个数必须为1,不支持逐通道零点
|
Y
|
output
|
tensor (int32)
|
整数累加卷积结果,格式为NCHW。
|
规格约束:维度为4D,形状为[N, M, H_out, W_out],仅支持int32
|
auto_pad
|
attribute
|
string
|
指定padding的类型。
|
配置范围:NOTSET、VALID、SAME_UPPER、SAME_LOWER;默认NOTSET;非NOTSET时不支持同时配置pads
|
dilations
|
attribute
|
list(int)
|
卷积核在各空间轴上的扩张系数。
|
规格约束:包含2个元素,每个元素大于等于1;默认[1, 1]
|
group
|
attribute
|
int
|
在输入输出channel上划分的分组个数。
|
规格约束:必须大于等于1,并能整除输入和输出通道数;默认1
|
kernel_shape
|
attribute
|
list(int)
|
卷积核的空间尺寸。
|
规格约束:包含2个元素,配置时必须与W的空间维度一致;默认从W推导
|
pads
|
attribute
|
list(int)
|
输入空间维度各轴前后的填充量。
|
规格约束:包含4个非负元素[top, left, bottom, right],仅在auto_pad为NOTSET时生效;默认[0, 0, 0, 0]
|
strides
|
attribute
|
list(int)
|
卷积核在各空间轴上的移动步长。
|
规格约束:包含2个元素,每个元素大于等于1;默认[1, 1]
|
QLinearConv
功能描述
对INT8量化输入和INT8量化权重执行二维卷积,并使用输出量化参数将INT32累加结果重新量化为INT8输出。计算过程如下:
acc = Σ((x - x_zero_point) × (w - w_zero_point)) + B
y = saturate(round_to_nearest_even(acc × x_scale × w_scale / y_scale) + y_zero_point)
该算子仅支持ONNX格式和RISCV Micro目标,支持ONNX Opset 10及以上版本。转换时复用Conv2DFusion算子及其INT8 Micro实现。
参数说明
表 1 QLinearConv参数概览
参数名 |
参数/输入输出 |
数据类型 |
参数含义 |
配置范围及规格约束说明 |
x |
input |
tensor (int8) |
量化输入张量,格式为NCHW。 |
仅支持INT8和4D二维卷积输入。 |
x_scale |
input |
tensor (float32) |
输入x的量化缩放因子。 |
必须是有限正数和常量标量,仅支持per-tensor量化。 |
x_zero_point |
input |
tensor (int8) |
输入x的量化零点。 |
必须是常量标量。 |
w |
input |
tensor (int8) |
量化卷积权重。 |
必须是常量4D张量,形状为[M, C, kH, kW];M为输出通道数。 |
w_scale |
input |
tensor (float32) |
权重w的量化缩放因子。 |
必须是有限正数常量;支持标量per-tensor量化,或长度等于M的1D per-output-channel量化。 |
w_zero_point |
input |
tensor (int8) |
权重w的量化零点。 |
必须为常量,形状与w_scale一致。 |
y_scale |
input |
tensor (float32) |
输出y的量化缩放因子。 |
必须是有限正数和常量标量,仅支持per-tensor量化。 |
y_zero_point |
input |
tensor (int8) |
输出y的量化零点。 |
必须是常量标量。 |
B |
input |
tensor (int32) |
可选偏置。 |
必须是常量1D张量,元素个数等于M;省略时按全0偏置处理。偏置scale为x_scale与对应w_scale的乘积,zero point为0。 |
y |
output |
tensor (int8) |
重新量化后的卷积结果,格式为NCHW。 |
仅支持INT8和4D输出。 |
auto_pad |
attribute |
string |
指定padding类型。 |
仅支持NOTSET。 |
dilations |
attribute |
list(int) |
卷积核在两个空间轴上的扩张系数。 |
包含2个元素,每个元素大于等于1;默认[1, 1]。 |
group |
attribute |
int |
输入和输出通道的分组数。 |
仅支持1。 |
kernel_shape |
attribute |
list(int) |
卷积核的空间尺寸。 |
包含2个元素,配置时必须与w的[kH, kW]一致;默认从w推导。 |
pads |
attribute |
list(int) |
输入空间维度各轴前后的填充量。 |
包含4个非负元素[top, left, bottom, right];仅在auto_pad为NOTSET时生效,默认[0, 0, 0, 0]。 |
strides |
attribute |
list(int) |
卷积核在两个空间轴上的移动步长。 |
包含2个元素,每个元素大于等于1;默认[1, 1]。 |
说明:
x、w和y仅支持INT8,不支持UINT8。所有scale和zero point必须在模型转换时可确定,且每组scale和zero point的元素个数必须一致。输入x和输出y仅支持per-tensor量化;权重w支持per-tensor或按输出通道per-output-channel量化。
当模型使用QuantizeLinear和DequantizeLinear作为浮点网络与QLinearConv之间的边界时,边界算子仅支持常量标量float32 scale和常量标量int8 zero point,转换后分别作为FP32到INT8、INT8到FP32的QuantDTypeCast执行。
QLinearConv源图已经包含量化参数,转换时不能再次启用全量化,否则转换器会按重复量化处理并终止转换。
OneHot
功能描述
将整数类别索引张量展开为OneHot编码张量,在axis指定的位置插入深度维。该算子与布局无关,不进行NCHW/NHWC转换。
参数说明
表 1 OneHot参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
indices
|
input
|
tensor (int32)
|
待编码的类别索引张量。
|
维度不限制;[-depth, -1]范围内的负索引加depth后编码,其他越界索引对应的输出切片全部为off值
|
depth
|
input
|
tensor (int32)
|
OneHot编码深度。
|
规格约束:必须为标量
|
values
|
input
|
tensor (float32)
|
指定关闭值和开启值,顺序为[off_value, on_value]。
|
规格约束:必须包含2个元素
|
output
|
output
|
tensor (float32/int8)
|
OneHot编码结果。
|
输出秩为indices秩加1,axis维度大小为depth;非量化输出为float32,全量化输出为int8
|
axis
|
attribute
|
int
|
深度维的插入位置。
|
负值加rank(indices)+1进行归一化,归一化后的配置范围为[0, rank(indices)];默认-1
|
ThresholdedRelu
功能描述
对输入张量逐元素执行阈值过滤。当输入值严格大于alpha时保留原值,否则输出0;输入值等于alpha时输出0。该算子与布局无关,输出形状和格式与输入一致。
参数说明
表 1 ThresholdedRelu参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor (float32/int8)
|
待执行阈值过滤的输入张量。
|
规格约束:维度为1D/2D/3D/4D;源模型仅支持float32,全量化通路为int8;不支持float16、float64、bfloat16
|
Y
|
output
|
tensor (float32/int8)
|
阈值过滤结果张量。
|
输出形状和数据类型与输入一致
|
alpha
|
attribute
|
float
|
阈值,仅严格大于该值的输入元素保留原值。
|
可选属性,默认1.0;支持0、负值和大于1的值
|
Unique
功能描述
对输入张量进行去重。省略axis时按行主序展平输入并比较标量元素;配置axis时沿指定轴比较完整子张量。
参数说明
说明:
Unique算子支持float32/int8,不支持量化。
表 1 Unique参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor (float32/int8/uint8)
|
待去重的输入张量。
|
规格约束:维度为1D/2D/3D/4D且形状必须静态,不支持动态秩、动态轴和逐通道量化;float64、int64源模型分别归一化为float32、int32运行
|
Y
|
output
|
tensor (与X相同)
|
唯一值或唯一子张量。
|
展平模式输出为1D;axis模式保持输入秩及非轴维度,所选轴收缩为唯一个数;变长输出,必须作为图的终端输出;全量化时继承X的量化参数
|
indices
|
output
|
tensor (int64语义)
|
每个唯一结果在输入中首次出现的位置,可选输出。
|
长度为唯一个数;运行时归一化为int32表示;变长输出,必须作为图的终端输出
|
inverse_indices
|
output
|
tensor (int64语义)
|
每个展平元素或轴位置到唯一结果下标的映射,可选输出。
|
长度为展平元素总数或所选轴长度;运行时归一化为int32表示
|
counts
|
output
|
tensor (int64语义)
|
每个唯一结果的出现次数,可选输出。
|
长度为唯一个数;运行时归一化为int32表示;变长输出,必须作为图的终端输出
|
axis
|
attribute
|
int
|
指定比较完整子张量的轴。
|
可选属性;省略时展平输入;配置范围为[-rank(X), rank(X)-1],负值按输入秩归一化
|
sorted
|
attribute
|
int
|
指定唯一结果的输出顺序。
|
配置范围:0、1;默认1。1表示按字典序升序输出,0表示保持首次出现顺序
|
Softsign
功能描述
对输入张量逐元素执行Softsign激活函数运算。公式为:Y=X/(1+|X|)。输出与输入形状相同,输出值范围为(-1, 1)。
参数说明
表 1 Softsign参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度不限制。
|
模型数据类型为float32;支持FP32和全量化INT8转换。
|
Y
|
output
|
tensor
|
输出张量,与输入形状相同。
|
输出数据类型与输入一致。
|
Softplus
功能描述
对输入张量逐元素执行Softplus激活函数运算。公式为:Y=ln(exp(X)+1)。输出与输入形状相同。
参数说明
表 1 Softplus参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor
|
输入张量,维度不限制。
|
模型数据类型为float32;支持FP32和全量化INT8转换。
|
Y
|
output
|
tensor
|
输出张量,与输入形状相同,每个元素为对应输入元素的Softplus计算结果。
|
输出数据类型与输入一致。
|
LogSoftmax
功能描述
沿axis指定的维度计算输入张量的对数归一化概率。对于该维度中的每个元素,计算公式为:Yi=Xi-log(Σjexp(Xj))。输出张量的形状和格式与输入相同。
参数说明
表 1 LogSoftmax参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
input
|
input
|
tensor
|
输入张量,维度为1D~5D。
|
模型数据类型为float32;支持FP32和全量化INT8转换。
|
output
|
output
|
tensor
|
输出张量,形状和格式与输入相同。
|
模型输出数据类型与输入一致。
|
axis
|
attribute
|
int
|
LogSoftmax的计算轴;负值从最后一维反向计数。
|
默认值为-1;-rank(input)<=axis<rank(input),rank为输入张量的秩。
|
ConvTranspose
功能描述
转置卷积(反卷积)算子,用于上采样。输出空间维按ONNX规格公式计算:output_shape[i]=stride[i]×(input_size[i]-1)+output_padding[i]+((kernel_shape[i]-1)×dilations[i]+1)-pads[start_i]-pads[end_i]。
参数说明
说明:
支持group=1的标准反卷积,包括任意对称或非对称pads、步长 ≥ 1、膨胀 ≥ 1、auto_pad、output_padding以及可选偏置;支持FP32和全量化INT8转换,权重按输出通道逐通道量化。不支持output_shape属性、group大于1、int8模式下batch大于1以及非4D输入。
表 1 ConvTranspose参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor (float32)
|
数据输入张量。
|
规格约束:维度为4D,NCHW排布,静态shape,batch=1
|
W
|
input
|
tensor (float32)
|
权重initializer。
|
规格约束:形状为[C_in, C_out/group, kH, kW]
|
B
|
input
|
tensor (float32)
|
可选偏置输入,默认无。
|
规格约束:形状为[C_out],存在时节点为三输入
|
Y
|
output
|
tensor (float32/int8)
|
转置卷积输出张量。
|
规格约束:形状为[N, C_out, oH, oW],oH/oW按功能描述中的公式计算;支持FP32和全量化INT8转换
|
auto_pad
|
attribute
|
string
|
指定padding的类型。
|
配置范围:NOTSET、VALID、SAME_UPPER、SAME_LOWER;默认NOTSET;非NOTSET时不支持同时配置pads
|
dilations
|
attribute
|
list(int)
|
卷积核在各空间轴上的扩张系数。
|
规格约束:包含2个元素,每个元素大于等于1;默认[1, 1]
|
group
|
attribute
|
int
|
在输入输出channel上划分的分组个数。
|
规格约束:默认1;group大于1(含深度反卷积)不支持
|
kernel_shape
|
attribute
|
list(int)
|
卷积核的空间尺寸。
|
规格约束:包含2个元素,配置时必须与W的空间维度一致;默认从W推导
|
output_padding
|
attribute
|
list(int)
|
输出附加尺寸,用于微调输出大小。
|
规格约束:包含2个元素,每个元素小于对应维度的stride;默认[0, 0]
|
output_shape
|
attribute
|
list(int)
|
显式输出形状。
|
规格约束:不支持,解析阶段直接报错;应改用显式pads导出模型
|
pads
|
attribute
|
list(int)
|
输入空间维度各轴前后的填充量。
|
规格约束:包含4个非负元素[top, left, bottom, right],支持任意对称或非对称补边;默认[0, 0, 0, 0]
|
strides
|
attribute
|
list(int)
|
卷积核在各空间轴上的移动步长。
|
规格约束:包含2个元素,每个元素大于等于1;默认[1, 1]
|
RNN
功能描述
循环神经网络算子,计算一层简单循环网络,对时间步t逐拍更新隐状态并输出:Ht=activation(Xt·WT+Ht-1·RT+Wb+Rb)。其中Xt为当前时间步输入,W为输入权重,R为循环权重,Wb/Rb为对应偏置(可省略,缺省为零);clip属性存在时在激活之前把括号内求和值裁剪到[-clip, +clip]。每个方向维护独立的权重与隐状态。
参数说明
说明:
模型数据类型仅支持float32,RISCV平台支持FP32与全量化INT8,x86平台仅支持FP32,不支持INT8量化。必须同时输出Y与Y_h。仅支持layout=0(时间步在前的布局),layout=1(批在前的布局)不支持。TFLite无对应builtin算子,不支持转换。
表 1 RNN参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor (float32)
|
输入序列张量。
|
规格约束:layout=0时形状为[seq, batch, input]
|
W
|
input
|
tensor (float32)
|
输入权重。
|
规格约束:形状为[direction, hidden, input],须为常量
|
R
|
input
|
tensor (float32)
|
循环权重。
|
规格约束:形状为[direction, hidden, hidden],须为常量
|
B
|
input
|
tensor (float32)
|
可选偏置输入,默认无;前hidden个元素为Wb,后hidden个元素为Rb。
|
规格约束:形状为[direction, 2*hidden],缺省为零
|
sequence_lens
|
input
|
tensor (int32)
|
可选输入,每个批次的有效时间步,默认无。
|
规格约束:形状为[batch],规格强制int32
|
initial_h
|
input
|
tensor (float32)
|
可选输入,初始隐状态,默认无。
|
规格约束:layout=0时形状为[direction, batch, hidden]
|
Y
|
output
|
tensor (float32)
|
每个有效时间步的隐状态。
|
规格约束:layout=0时形状为[seq, direction, batch, hidden];无效时间步为0
|
Y_h
|
output
|
tensor (float32)
|
每个批次最后一个有效时间步的隐状态。
|
规格约束:layout=0时形状为[direction, batch, hidden];零长度批次为0;必须与Y同时输出
|
direction
|
attribute
|
string
|
RNN的方向。
|
配置范围:forward(正向)、reverse(反向)、bidirectional(双向);默认forward。双向时两个方向各自使用独立的权重和隐状态,结果沿方向维拼接
|
hidden_size
|
attribute
|
int
|
隐状态维度。
|
规格约束:必需属性,须与W/R形状一致
|
layout
|
attribute
|
int
|
输入输出的布局。
|
配置范围:0(时间步主序)、1(批主序);默认0;仅支持0
|
clip
|
attribute
|
float
|
激活前的对称裁剪值。
|
规格约束:大于等于0时生效,默认不裁剪
|
activations
|
attribute
|
list(string)
|
每个方向的激活函数。
|
配置范围:Tanh、Relu、Sigmoid、Affine、LeakyRelu、ThresholdedRelu、ScaledTanh、HardSigmoid、Elu、Softsign、Softplus;默认Tanh
|
activation_alpha
|
attribute
|
list(float)
|
带参数激活函数的alpha,每方向一个。
|
用于Affine、LeakyRelu、ThresholdedRelu、ScaledTanh、Elu等;未显式给出时按ONNX各激活默认值补齐
|
activation_beta
|
attribute
|
list(float)
|
带参数激活函数的beta,每方向一个。
|
用于Affine、ScaledTanh、HardSigmoid;未显式给出时按ONNX各激活默认值补齐
|
Neg
功能描述
对张量的每个元素做取负运算(符号取反),即 y = -x。
参数说明
表 1 Neg参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor(fp32)
|
输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。
|
规格约束:不支持fp16/int32类型(Micro coder 未注册);不支持 rank>4
|
Y
|
output
|
tensor(fp32)
|
输出张量,维度与输入 X 相同,每个元素为 X 对应元素的相反数。
|
-
|
Pow
功能描述
计算两个张量的逐元素幂运算,X 为底数张量,Y 为指数张量,输出 Z = X^Y。支持 NumPy 风格广播。
参数说明
说明:
Pow 无原生属性,转换时 MSLite 内部 scale=1.0, shift=0.0 等价于标准幂运算。支持广播特性,双向广播需在转换命令中明确配置 inputDataFormat 和 outputDataFormat 参数。
推荐使用 X ≥ 0 的输入组合确保结果确定性;X < 0 且 Y 为非整数时实数域无定义,输出值取决于底层数学库。
INT8 量化仅支持 X ≥ 0 的输入,X < 0 时负数值在 int8 对称量化中将被映射为 0。
表 1 Pow参数概览
参数名
|
参数/输入输出
|
数据类型
|
参数含义
|
配置范围及规格约束说明
|
X
|
input
|
tensor(fp32/int8)
|
底数张量,维度为 1D/2D/3D/4D,格式为 ND/NCW/NCHW。
|
规格约束:最大维度 4D;支持 NumPy 广播;不支持fp16/fp64/int32/int64类型;INT8 不支持 X<0 的输入
|
Y
|
input
|
tensor(fp32/int8)
|
指数张量,维度为 1D/2D/3D/4D,与 X 广播兼容。
|
规格约束:最大维度 4D;不支持fp16/fp64/int32/int64类型
|
Z
|
output
|
tensor(fp32/int8)
|
输出张量,维度为 X 与 Y 的广播结果,格式为 ND/NCW/NCHW。
|
规格约束:最大维度 4D;不支持fp16/fp64/int32/int64类型
|