Skip to content

Latest commit

 

History

History
196 lines (194 loc) · 85.3 KB

onnx_ops.md

File metadata and controls

196 lines (194 loc) · 85.3 KB

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实现