nncase/docs/onnx_ops.md

85 KiB
Raw Permalink Blame History

Supported ONNX ops

支持的 ONNX 算子

Operator Is Supported Version(onnx) Supported/Not Supported Feature supported optimized or not Remark
Abs 13, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
optimized只支持float数据类型
基于unary实现
Acos 7 1.支持导入
2.支持的输入数据类型:float16,float,double
optimized只支持float数据类型
基于unary实现
Acosh 9 1.支持导入
2.支持的输入数据类型:float16,float,double
optimized只支持float数据类型
基于unary实现
Add 14, 13, 7, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
基于binary实现
ArgMax 13, 12, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
ArgMin 13, 12, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
Asin 7 1.支持导入
2.支持的输入数据类型:float16,float,double
optimized只支持float数据类型
基于unary实现
Asinh 9 1.支持导入
2.支持的输入数据类型:float16,float,double
optimized只支持float数据类型
基于unary实现
Atan 7 1.不支持导入
2.支持的输入数据类型:float16,float,double
optimized只支持float数据类型
基于unary实现
Atanh / / / /
AveragePool 19, 11, 10, 7, 1 1.支持导入
2.支持的输入数据类型:float16,float,double
AffineGrid / / /
BatchNormalization 15, 14, 9, 7, 6, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
BitShift / / / /
BitwiseAnd / / / /
BitwiseNot / / / /
BitwiseOr / / / /
BitwiseXor / / / /
Bernoulli / / / /
BlackmanWindow / / / /
CastLike / / / /
Cast 19, 13, 9, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16->
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float,double
不支持bool类型的转化,不支持float->float16/bfloat16
Ceil 13, 6, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
optimized只支持float数据类型
基于unary实现
Col2Im / / / /
Compress / / / /
Concat 13, 11, 4, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
ConcatFromSequence / / / /
Constant 19, 13, 12, 11, 9, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
ConstantOfShape 20, 9 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
Conv 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
ConvInteger / / / /
ConvTranspose 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
Cos 7 1.支持导入
2.支持的输入数据类型:float16,float,double
optimized只支持float数据类型
基于unary实现
Cosh 9 1.支持导入
2.支持的输入数据类型:float16,float,double
optimized只支持float数据类型
基于unary实现
CumSum 14, 11 1.支持导入
2.支持的输入数据类型:
input:float16,float,double,bfloat16,int32,int64,uint32,uint64
axis:int32,int64
Celu 12 1.支持导入
2.支持的输入数据类型:float
CenterCropPad / / / /
Clip 13, 12, 11, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
DFT / / / /
DeformConv / / / /
DepthToSpace 13, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
DequantizeLinear 19, 13, 10 1.支持导入
2.支持的输入数据类型:int8,uint8,int32->float
Det / / / /
Div 14, 13, 7, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
Dropout 13, 12, 10, 7, 6, 1 1.支持导入
2.支持的输入数据类型:
input:float16,float,double,bfloat16
ratio:float16,float,double
mask:bool
DynamicQuantizeLinear / / / /
Einsum / / / /
Elu 6, 1 1.支持导入
2.支持的输入数据类型:float16,float,double
Equal 19, 13, 11, 7, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
Erf 13, 9 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
Exp 13, 6, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
optimized只支持float数据类型
基于unary实现
Expand 13, 8 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Flatten 13, 11, 9, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Floor 13, 6, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
optimized只支持float数据类型
基于unary实现
GRU / / / /
Gelu 20 1.不支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
Gather 13, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
GatherElements 13, 11 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
GatherND 13, 12, 11 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Gemm 13, 11, 9, 7, 6, 1 1.支持导入
2.支持的输入数据类型:
uint32,uint64,int32,int64,float16,float,double,bfloat16
GlobalAveragePool 1 1.支持导入
2.支持的输入数据类型:float16,float,double
GlobalLpPool / / / /
GlobalMaxPool 1 1.支持导入
2.支持的输入数据类型:float16,float,double
optimized只支持float数据类型
Greater / / / /
GreaterOrEqual / / / /
GridSample / / / /
GroupNormalization / / / /
Hardmax 13, 11, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
HammingWindow / / / /
HannWindow / / / /
HardSigmoid 6, 1 1.支持导入
2.支持的输入数据类型:float16,float,double
HardSwish 14 1.支持导入
2.支持的输入数据类型:float16,float,double
Identity 19, 16, 14, 13, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
If / / / /
ImageDecoder / / / /
InstanceNormalization 6, 1 1.支持导入
2.支持的输入数据类型:float16,float,double
IsInf / / / /
IsNaN / / / /
LRN 13, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
LSTM 14, 7, 1 1.支持导入
2.支持的输入数据类型:float16,float,double
Less / / / /
Log 13, 6, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
optimized只支持float数据类型
基于unary实现
LpNormalization / / / /
LpPool / / / /
LayerNormalization 17 1.不支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
optimized只支持float数据类型
LeakyRelu 16, 6, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
LogSoftmax 13, 11, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
optimized只支持float数据类型
LessOrEqual / / / /
MatMul 13, 9, 1 1.支持导入
2.支持的输入数据类型:
uint32,uint64,int32,int64,float16,float,double,bfloat16
MatMulInteger / / / /
Max 13, 12, 8, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
基于binary实现
MaxPool 12, 11, 10, 8, 1 1.支持导入
2.支持的输入数据类型:
uint8,int8,float16,float,double
MaxRoiPool / / / /
MaxUnpool / / / /
Mean 13, 8, 6, 1 1.不支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
MelWeightMatrix / / / /
MeanVarianceNormalization / / / /
Min 13, 12, 8, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
基于binary实现
Mish / / / /
Mod 13, 10 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
基于binary实现
Mul 14, 13, 7, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
基于binary实现
Multinomial / / / /
Neg 13, 6, 1 1.支持导入
2.支持的输入数据类型:
int8,int16,int32,int64,float16,float,double,bfloat16
optimized只支持float数据类型
基于unary实现
NonMaxSuppression / / / /
NonZero / / / /
Not 1 1.支持导入
2.支持的输入数据类型: bool
optimized只支持float数据类型
基于unary实现
NegativeLogLikelihoodLoss / / / /
OneHot 11, 9 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bool
Optional / / / /
OptionalGetElement / / / /
OptionalHasElement / / / /
Or 7, 1 1.支持导入
2.支持的输入数据类型: bool
基于binary实现
Pad 19, 18, 13, 11, 2, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
在tensorflow和onnxruntime中pad在reflect mode下,
当before_pad/after_pad > in_dim - 1时均会出现未定义的行为
因此需要约束输入pad大小,
Pow 15, 13, 12, 7, 1 1.支持导入
2.支持的输入数据类型:
inputX(base of the exponent):float16,float,double,bfloat16,int32,int64
inputY(power of the exponent):uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
基于binary实现
PRelu 16, 9, 7, 6, 1 1.支持导入
2.支持的输入数据类型:
uint32,uint64,int32,int64,float16,float,double,bfloat16
QLinearConv 10 1.支持导入
2.支持的输入数据类型:int8,uint8
QLinearMatMul 10 1.支持导入
2.支持的输入数据类型:int8,uint8
QuantizeLinear 19, 13, 10 1.支持导入
2.支持的输入数据类型:float->int8,uint8,int32
RNN / / / /
RandomNormal 1 1.支持导入
2.支持的输入数据类型:float
RandomNormalLike 1 1.支持导入
2.支持的输入数据类型:float
RandomUniform 1 1.支持导入
2.支持的输入数据类型:float
RandomUniformLike 1 1.支持导入
2.支持的输入数据类型:float
Reciprocal / / / /
ReduceMax 20, 18, 13, 12, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
ReduceMean 18, 13, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
ReduceMin 20, 18, 13, 12, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
ReduceProd 18, 13, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
ReduceSum 13, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
RegexFullMatch / / / /
Range 11 1.支持导入
2.支持的输入数据类型: float,double,int16,int32,int64
ReduceL1 18, 13, 11, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16,int32,int64,uint32,uint64
ReduceL2 18, 13, 11, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16,int32,int64,uint32,uint64
ReduceLogSum 18, 13, 11, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16,int32,int64,uint32,uint64
ReduceLogSumExp 18, 13, 11, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16,int32,int64,uint32,uint64
ReduceSumSquare 18, 13, 11, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16,int32,int64,uint32,uint64
Relu 14, 13, 6, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16,int32,int64,int8,int16
Reshape 19, 14, 13, 5, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Resize 19, 18, 13, 11, 10 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
ReverseSequence 10 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
RoiAlign / / / /
Round 11 1.支持导入
2.支持的输入数据类型: float16,float,double
optimized只支持float数据类型
基于unary实现
STFT / / / /
Scan / / / /
Scatter (deprecated) / / / /
ScatterElements / / / /
ScatterND 18, 16, 13, 11 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
SequenceAt / / / /
SequenceConstruct / / / /
SequenceEmpty / / / /
SequenceErase / / / /
SequenceInsert / / / /
SequenceLength / / / /
Shape 19, 15, 13, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Sigmoid 13, 6, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16
optimized只支持float数据类型
Sign 13, 9 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
optimized只支持float数据类型
基于unary实现
Sin 7 1.支持导入
2.支持的输入数据类型: float16,float,double
optimized只支持float数据类型
基于unary实现
Sinh 9 1.支持导入
2.支持的输入数据类型: float16,float,double
optimized只支持float数据类型
基于unary实现
Size 19, 13, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Slice 13, 11, 10, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
SpaceToDepth 13, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Split 18, 13, 11, 2, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
SplitToSequence / / / /
Sqrt 13, 6, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16
optimized只支持float数据类型
基于unary实现
Squeeze 13, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
StringConcat / / / /
StringNormalizer / / / /
StringSplit / / / /
Sub 14, 13, 7, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16
基于binary实现
Sum 13, 8, 6, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16
Selu 6, 1 1.不支持导入
2.支持的输入数据类型: float16,float,double
SequenceMap / / / /
Shrink / / / /
Softmax 13, 11, 1 1.支持导入
2.支持的输入数据类型:float16,float,double,bfloat16
optimized只支持float数据类型
SoftmaxCrossEntropyLoss / / / /
Softplus 1 1.支持导入
2.支持的输入数据类型: float16,float,double
Softsign 1 1.支持导入
2.支持的输入数据类型: float16,float,double
Tan 7 1.支持导入
2.支持的输入数据类型: float16,float,double
基于unary实现
Tanh 13, 6, 1 1.支持导入
2.支持的输入数据类型: float16,float,double,bfloat16
optimized只支持float数据类型
基于unary实现
TfIdfVectorizer / / / /
Tile 13, 6, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
TopK 11, 10, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double
Transpose 13, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Trilu 14 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
ThresholdedRelu / / / /
Unique / / / /
Unsqueeze 13, 11, 1 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Upsample (deprecated) 10, 9, 7 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Where 16, 9 1.支持导入
2.支持的输入数据类型:
uint8,uint16,uint32,uint64,int8,int16,int32,int64,float16,float,double,bfloat16,bool
Xor 7, 1 1.不支持导入
2.支持的输入数据类型: bool
基于binary实现