ONNX Support Status¶
Note: | In this document, the numbers in the header of all tables represent the version of onnx opset. |
---|
Import¶
- ✓: onnx specification defined, and supported.
- X: onnx specification defined, but not support yet.
- Empty: Not defined (Support status follows latest).
ONNX Version Info: | |
---|---|
|
Total: 81/129
ONNX Operator | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | NNabla Func | Description |
---|---|---|---|---|---|---|---|---|---|---|---|
Abs | ✓ | ✓ | Abs | ||||||||
Acos | ✓ | ACos | |||||||||
Acosh | ✓ | ACosh | |||||||||
Add | ✓ | ✓ | ✓ | Reshape, Add2 | |||||||
And | ✓ | ✓ | ✓ | Reshape, LogicalAnd | |||||||
ArgMax | ✓ | ✓ | Max | ||||||||
ArgMin | ✓ | ✓ | Min | ||||||||
Asin | ✓ | ASin | |||||||||
Asinh | ✓ | ASinh | |||||||||
Atan | ✓ | ATan | |||||||||
Atanh | ✓ | ATanh | |||||||||
AveragePool | ✓ | ✓ | ✓ | AveragePooling, Pad | Not all features are verified, since some features are not supported by caffe2. Those features can be verified by ONNXRuntime when opset > 6. Some feature is not supported by Nnabla such as Pad’s edge mode. | ||||||
BatchNormalization | X | X | X | ✓ | BatchNormalization | ||||||
Cast | X | X | X | Not yet implemented. | |||||||
Ceil | ✓ | ✓ | Ceil | ||||||||
Clip | ✓ | ✓ | MaximumScalar, MinimumScalar | ||||||||
Compress | X | Not yet implemented. | |||||||||
Concat | ✓ | ✓ | ✓ | Concatenate | |||||||
Constant | ✓ | ✓ | X | Identity | |||||||
ConstantOfShape | X | Not yet implemented. | |||||||||
Conv | ✓ | ✓ | Convolution | ||||||||
ConvTranspose | ✓ | ✓ | Pad, Deconvolution | ||||||||
Cos | ✓ | Cos | |||||||||
Cosh | ✓ | Cosh | |||||||||
DepthToSpace | ✓ | ✓ | Reshape, Transpose | ||||||||
Div | ✓ | ✓ | ✓ | Reshape, Div2 | |||||||
Dropout | X | X | ✓ | Identity | |||||||
Elu | ✓ | ✓ | ELU | ||||||||
Equal | ✓ | ✓ | ✓ | Reshape, Equal | |||||||
Erf | X | Not yet implemented. | |||||||||
Exp | ✓ | ✓ | Exp | ||||||||
Expand | X | Not yet implemented. | |||||||||
EyeLike | X | Not yet implemented. | |||||||||
Flatten | ✓ | ✓ | ✓ | Reshape | |||||||
Floor | ✓ | ✓ | Floor | ||||||||
GRU | X | X | X | Not yet implemented. | |||||||
Gather | X | Not yet implemented. | |||||||||
Gemm | ✓ | ✓ | ✓ | ✓ | Add2, BatchMatmul, MulScalar, Broadcast | ||||||
GlobalAveragePool | ✓ | ✓ | GlobalAveragePooling | ||||||||
GlobalLpPool | X | X | Not yet implemented. | ||||||||
GlobalMaxPool | X | Not yet implemented. | |||||||||
Greater | ✓ | ✓ | ✓ | ✓ | Reshape, Greater | ||||||
HardSigmoid | X | X | Not yet implemented. | ||||||||
Hardmax | X | Not yet implemented. | |||||||||
Identity | ✓ | ✓ | Identity | ||||||||
If | X | Not yet implemented. | |||||||||
InstanceNormalization | X | X | Not yet implemented. | ||||||||
IsNaN | ✓ | IsNaN | |||||||||
LRN | ✓ | ✓ | Div2, AddScalar, SumPooling, MulScalar, PowScalar, Transpose | ||||||||
LSTM | X | X | Not yet implemented. | ||||||||
LeakyRelu | ✓ | ✓ | LeakyReLU | ||||||||
Less | ✓ | ✓ | ✓ | ✓ | Reshape, Less | ||||||
Log | ✓ | ✓ | Log | ||||||||
LogSoftmax | ✓ | ✓ | Sub2, Add2, Sum, Max, Reshape, Log, Exp | ||||||||
Loop | X | Not yet implemented. | |||||||||
LpNormalization | X | Not yet implemented. | |||||||||
LpPool | X | X | Not yet implemented. | ||||||||
MatMul | ✓ | ✓ | ✓ | BatchMatmul | |||||||
Max | ✓ | ✓ | ✓ | ✓ | Maximum2 | ||||||
MaxPool | ✓ | ✓ | X | MaxPooling, Pad | Not all features are verified, since some features are not supported by caffe2. Those features can be verified by ONNXRuntime. | ||||||
MaxRoiPool | X | Not yet implemented. | |||||||||
MaxUnpool | X | Not yet implemented. | |||||||||
Mean | ✓ | ✓ | ✓ | ✓ | Stack, Broadcast, Mean | ||||||
Min | ✓ | ✓ | ✓ | ✓ | Minimum2 | ||||||
Mul | ✓ | ✓ | ✓ | Mul2, Reshape | |||||||
Multinomial | X | Not yet implemented. | |||||||||
Neg | ✓ | ✓ | MulScalar | ||||||||
NonZero | X | Not yet implemented. | |||||||||
Not | ✓ | ✓ | LogicalNot | ||||||||
OneHot | X | Not yet implemented. | |||||||||
Or | ✓ | ✓ | ✓ | Reshape, LogicalOr | |||||||
PRelu | ✓ | ✓ | X | X | PReLU | ||||||
Pad | ✓ | ✓ | ✓ | Pad | Onnx required to support “edge” mode, while nnabla does not support it. | ||||||
Pow | ✓ | ✓ | ✓ | Reshape, Pow2 | |||||||
RNN | X | X | Not yet implemented. | ||||||||
RandomNormal | X | Not yet implemented. | |||||||||
RandomNormalLike | X | Not yet implemented. | |||||||||
RandomUniform | X | Not yet implemented. | |||||||||
RandomUniformLike | X | Not yet implemented. | |||||||||
Reciprocal | ✓ | ✓ | RDivScalar | ||||||||
ReduceL1 | X | Not yet implemented. | |||||||||
ReduceL2 | X | Not yet implemented. | |||||||||
ReduceLogSum | X | Not yet implemented. | |||||||||
ReduceLogSumExp | X | Not yet implemented. | |||||||||
ReduceMax | ✓ | ✓ | Max | ||||||||
ReduceMean | ✓ | ✓ | Mean | ||||||||
ReduceMin | ✓ | ✓ | Min | ||||||||
ReduceProd | ✓ | ✓ | Prod | ||||||||
ReduceSum | ✓ | ✓ | Sum | ||||||||
ReduceSumSquare | X | Not yet implemented. | |||||||||
Relu | ✓ | ✓ | ReLU | ||||||||
Reshape | ✓ | ✓ | ✓ | Reshape | |||||||
Resize | Not yet implemented. | ||||||||||
Scan | X | X | Not yet implemented. | ||||||||
Scatter | X | Not yet implemented. | |||||||||
Selu | ✓ | ✓ | SELU | ||||||||
Shape | X | Not yet implemented. | |||||||||
Shrink | X | Not yet implemented. | |||||||||
Sigmoid | ✓ | ✓ | Sigmoid | ||||||||
Sign | ✓ | Sign | |||||||||
Sin | ✓ | Sin | |||||||||
Sinh | ✓ | Sinh | |||||||||
Size | X | Not yet implemented. | |||||||||
Slice | ✓ | ✓ | Slice | ||||||||
Softmax | ✓ | ✓ | Sub2, Div2, Sum, Max, Reshape, Exp | ||||||||
Softplus | ✓ | ✓ | Log, Exp, AddScalar | ||||||||
Softsign | ✓ | ✓ | Div2, Abs, AddScalar | ||||||||
SpaceToDepth | ✓ | ✓ | Reshape, Transpose | ||||||||
Split | ✓ | ✓ | ✓ | Split, Stack | |||||||
Sqrt | ✓ | ✓ | PowScalar | ||||||||
Squeeze | ✓ | ✓ | Reshape | ||||||||
StringNormalizer | Not yet implemented. | ||||||||||
Sub | ✓ | ✓ | ✓ | Sub2, Reshape | |||||||
Sum | ✓ | ✓ | ✓ | ✓ | Add2 | ||||||
Tan | ✓ | Tan | |||||||||
Tanh | ✓ | ✓ | Tanh | ||||||||
TfIdfVectorizer | X | Not yet implemented. | |||||||||
ThresholdedRelu | Not yet implemented. | ||||||||||
Tile | ✓ | ✓ | Tile | ||||||||
TopK | X | Not yet implemented. | |||||||||
Transpose | ✓ | ✓ | Transpose | ||||||||
Unsqueeze | ✓ | ✓ | Reshape | ||||||||
Upsample | ✓ | ✓ | ✓ | ✓ | Unpooling | ||||||
Where | X | Not yet implemented. | |||||||||
Xor | ✓ | ✓ | ✓ | Reshape, LogicalXor | |||||||
experimental ATen | X | Not yet implemented. | |||||||||
experimental GRUUnit | X | Not yet implemented. | |||||||||
experimental GivenTensorFill | X | Not yet implemented. | |||||||||
experimental Scale | X | Not yet implemented. |
Export¶
- ✓: Support to export this opset.
- △: Partially support to export this opset (e.g. some cases cannot be supported, or not completely tested).
- X: Supported, but test failed.
- Empty: Not support corresponding opset version.
NNabla Version Info: | |
---|---|
|
Total: 81/172
Neural Network Layer¶
Count 10/14
NNabla Function 6 7 9 ONNX Op Description Affine ✓ ✓ ✓ Reshape, Gemm RNN Not yet implemented. LSTM Not yet implemented. GRU Not yet implemented. Convolution ✓ ✓ ✓ Reshape, Conv DepthwiseConvolution ✓ ✓ ✓ Reshape, Conv Deconvolution △ △ △ Reshape, ConvTranspose Caffe2 and onnxruntime do not support dilations != 1. DepthwiseDeconvolution △ △ △ Reshape, ConvTranspose Caffe2 and onnxruntime do not support dilations != 1. MaxPooling ✓ ✓ ✓ Reshape, MaxPool, Pad AveragePooling △ △ △ Reshape, AveragePool, Pad Currently only supports the cases where both ignore_border and including_pad are True. GlobalAveragePooling ✓ ✓ ✓ GlobalAveragePool SumPooling X ✓ ✓ Reshape, Constant, AveragePool, Pad, Mul Unpooling △ ✓ ✓ Reshape, Upsample The kernel only supports 2d on opset 6. Embed Not yet implemented.
Neural Network Activation Functions¶
Count 8/21
NNabla Function 6 7 9 ONNX Op Description Sigmoid ✓ ✓ ✓ Sigmoid Swish Not yet implemented. Tanh ✓ ✓ ✓ Tanh ReLU ✓ ✓ ✓ Relu LeakyReLU ✓ ✓ ✓ LeakyRelu Softmax △ ✓ ✓ Div, Sub, ReduceMax, ReduceSum, Exp ONNX Add, Sub operator does not support multidirectional broadcasting on opset 6. LogSoftmax Not yet implemented. ELU ✓ ✓ ✓ Elu SELU ✓ ✓ ✓ Selu CReLU Not yet implemented. CELU Not yet implemented. PReLU ✓ ✓ ✓ Reshape, PRelu GELU Not yet implemented. ReLU6 Not yet implemented. HardSigmoid Not yet implemented. HardTanh Not yet implemented. LogSigmoid Not yet implemented. SoftPlus Not yet implemented. SoftSign Not yet implemented. TanhShrink Not yet implemented. Sinc Not yet implemented.
Normalization¶
Count 1/6
NNabla Function 6 7 9 ONNX Op Description FusedBatchNormalization Not yet implemented. BatchNormalization △ △ △ Reshape, InstanceNormalization, BatchNormalization In inferring stage, caffe2 mistmatch onnx 1.4.x’s implementation, “in-place” feature cannot be applied. SyncBatchNormalization Not yet implemented. MeanSubtraction Not yet implemented. ClipGradByValue Not yet implemented. ClipGradByNorm Not yet implemented.
Reduction¶
Count 5/7
NNabla Function 6 7 9 ONNX Op Description Sum ✓ ✓ ✓ ReduceSum Mean ✓ ✓ ✓ ReduceMean Max ✓ ✓ ✓ ReduceMax Min ✓ ✓ ✓ ReduceMin Prod ✓ ✓ ✓ ReduceProd ReduceSum Not yet implemented. ReduceMean Not yet implemented.
Arithmetic¶
Count 11/12
NNabla Function 6 7 9 ONNX Op Description Add2 △ ✓ ✓ Add ONNX Add operator does not support multidirectional broadcasting on opset 6. BcAdd2 Not yet implemented. Sub2 △ ✓ ✓ Sub ONNX Sub operator does not support multidirectional broadcasting on opset 6. Mul2 △ ✓ ✓ Mul ONNX Mul operator does not support multidirectional broadcasting on opset 6. Div2 △ ✓ ✓ Div ONNX Div operator does not support multidirectional broadcasting on opset 6. Pow2 △ ✓ ✓ Pow ONNX Pow operator does not support multidirectional broadcasting on opset 6. AddScalar ✓ ✓ ✓ Add, Constant MulScalar ✓ ✓ ✓ Mul, Constant PowScalar ✓ ✓ ✓ Constant, Pow RSubScalar ✓ ✓ ✓ Sub RDivScalar ✓ ✓ ✓ Div RPowScalar ✓ ✓ ✓ Pow
Logical¶
Count 12/29
NNabla Function 6 7 9 ONNX Op Description Sign X X ✓ Sign Minimum2 △ ✓ ✓ Add, Min, Constant ONNX Add operator does not support multidirectional broadcasting on opset 6. Maximum2 △ ✓ ✓ Add, Max, Constant ONNX Add operator does not support multidirectional broadcasting on opset 6. MinimumScalar ✓ ✓ ✓ Add, Min, Constant MaximumScalar ✓ ✓ ✓ Add, Max, Constant LogicalAnd ✓ ✓ ✓ And LogicalOr ✓ ✓ ✓ Or LogicalXor ✓ ✓ ✓ Xor Equal ✓ ✓ ✓ Equal NotEqual Not yet implemented. GreaterEqual Not yet implemented. Greater ✓ ✓ ✓ Greater LessEqual Not yet implemented. Less ✓ ✓ ✓ Less LogicalAndScalar Not yet implemented. LogicalOrScalar Not yet implemented. LogicalXorScalar Not yet implemented. EqualScalar Not yet implemented. NotEqualScalar Not yet implemented. GreaterEqualScalar Not yet implemented. GreaterScalar Not yet implemented. LessEqualScalar Not yet implemented. LessScalar Not yet implemented. LogicalNot ✓ ✓ ✓ Not IsNaN Not yet implemented. IsInf Not yet implemented. ResetNaN Not yet implemented. ResetInf Not yet implemented. Where Not yet implemented.
Math¶
Count 19/22
NNabla Function 6 7 9 ONNX Op Description Constant Not yet implemented. Arange Not yet implemented. Abs ✓ ✓ ✓ Abs Exp ✓ ✓ ✓ Exp Log ✓ ✓ ✓ Log Identity ✓ ✓ ✓ Identity BatchMatmul ✓ ✓ ✓ Reshape, MatMul, Transpose Round Not yet implemented. Ceil ✓ ✓ ✓ Ceil Floor ✓ ✓ ✓ Floor Sin X ✓ ✓ Sin Cos X ✓ ✓ Cos Tan X ✓ ✓ Tan Sinh X X ✓ Sinh Cosh X X ✓ Cosh ASin X ✓ ✓ Asin ACos X ✓ ✓ Acos ATan X ✓ ✓ Atan ATan2 X ✓ ✓ Div, Atan ASinh X X ✓ Asinh ACosh X X ✓ Acosh ATanh X X ✓ Atanh
Array Manipulation¶
Count 9/19
NNabla Function 6 7 9 ONNX Op Description Concatenate ✓ ✓ ✓ Concat Split ✓ ✓ ✓ Squeeze, Split Stack ✓ ✓ ✓ Concat, Unsqueeze Slice △ △ △ Slice ONNX slice cannot support step != 1 on opset < 10. Pad △ △ △ Pad When the mode of the pad is reflect, if the size of the pad exceeds the input size, caffe2 and onnxruntime cannot handle it. Transpose ✓ ✓ ✓ Transpose Broadcast Not yet implemented. BroadcastTo ✓ ✓ ✓ Tile Not yet implemented. OneHot Not yet implemented. Flip ✓ ✓ ✓ Identity, Gather, Transpose Shift Not yet implemented. Sort Not yet implemented. Reshape ✓ ✓ ✓ Reshape, Constant MatrixDiag Not yet implemented. MatrixDiagPart Not yet implemented. Assign Not yet implemented. GatherNd Not yet implemented. ScatterNd Not yet implemented.
Signal Processing¶
Count 0/3
NNabla Function 6 7 9 ONNX Op Description Interpolate Not yet implemented. FFT Not yet implemented. IFFT Not yet implemented.
Stochasticity¶
Count 0/11
NNabla Function 6 7 9 ONNX Op Description Dropout X X X Dropout The Dropout in nnabla has no test mode and contains random parameters, so the test result is not the same as onnx. TopKData Not yet implemented. TopKGrad Not yet implemented. Rand Not yet implemented. Randint Not yet implemented. Randn Not yet implemented. RandomChoice Not yet implemented. RandomCrop Not yet implemented. RandomFlip Not yet implemented. RandomShift Not yet implemented. ImageAugmentation Not yet implemented.
Loss Functions¶
Count 0/9
NNabla Function 6 7 9 ONNX Op Description SigmoidCrossEntropy Not yet implemented. BinaryCrossEntropy Not yet implemented. SoftmaxCrossEntropy Not yet implemented. CategoricalCrossEntropy Not yet implemented. SquaredError Not yet implemented. AbsoluteError Not yet implemented. HuberLoss Not yet implemented. EpsilonInsensitiveLoss Not yet implemented. KLMultinomial Not yet implemented.
Quantization Neural Network Layers¶
Count 6/11
NNabla Function 6 7 9 ONNX Op Description BinarySigmoid X X ✓ Greater, Constant, Where BinaryTanh X X ✓ Greater, Constant, Where BinaryConnectAffine ✓ ✓ ✓ Reshape, Gemm BinaryConnectConvolution ✓ ✓ ✓ Reshape, Conv BinaryWeightAffine ✓ ✓ ✓ Reshape, Add, MatMul, Mul BinaryWeightConvolution ✓ ✓ ✓ Reshape, Conv, Mul, Add INQAffine Not yet implemented. INQConvolution Not yet implemented. FixedPointQuantize Not yet implemented. Pow2Quantize Not yet implemented. Prune Not yet implemented.
Validation¶
Count 0/3
NNabla Function 6 7 9 ONNX Op Description TopNError Not yet implemented. BinaryError Not yet implemented. ConfusionMatrix Not yet implemented.
Unsupported, Special Use¶
Count 0/5
NNabla Function 6 7 9 ONNX Op Description VATNoise Not yet implemented. Unlink Not yet implemented. Sink Not yet implemented. NmsDetection2d Not yet implemented. MaxPoolingBackward Not yet implemented.