Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This page tracks the current status and development  to support ONNX  on Mxnet.   We currently support:

  • import of ONNX models into Mxnet.
  • export MXNet models to ONNX format.


ONNX-MXNET Import Module

We have two repositories for the import module:

  1. onnx-mxnet repository inside onnx https://github.com/onnx/onnx-mxnet  (soon to be deprecated)
  2. A newly created and refactored module inside Mxnet -> contrib. https://github.com/apache/incubator-mxnet/tree/master/python/mxnet/contrib/onnx/onnx2mx


MXNET-ONNX Export module

A new module has been added to MXNet repository to export MXNet models to ONNX model format. https://github.com/apache/incubator-mxnet/tree/master/python/mxnet/contrib/onnx/mx2onnx 

Operator Coverage:

This table keeps track of the status of all ONNX operators supported by Mxnet.
ONNX backend test script reports the coverage on the operators and attributes.


Status meaning:

OK = currently we support the operator

OK, in review = PR is out

NOT OK, under development = Operator is missing on MXNet backend or direct 1:1 mapping doesn’t exist

NOT OK = Not supported right now


OperatorTest CoverageMxnet (Import)Mxnet (Export)
AbsYesOKOK
AcosYesOKOK
AddYesOKOK
AndYes 
 

OK

 
OK
ArgMaxYes
 
OKOK
ArgMin
Yes OKOK
Asin

Yes

OKOK
AtanYesOKOk
 OK
AveragePoolYesOKOK
BatchNormalizationYesOKOK
CastYesOKOK
Ceil
 
Yes OKOK
ClipYesOK
NOT
OK
, under development
ConcatYesOKOK
ConstantYes
NOT
OK
ConvYesOKOK
ConvTranspose
Yes (local)
Yes OKOK
CosYesOKOK
Crop

OK
DepthToSpaceYes
 
OK
NOT
OK
, under development
DivYesOKOK
Dropout Yes
 
OKOK
EluYesOKOK
EqualYes
NOT
OKOK
ExpYesOKOK
FlattenYesPARTIAL, only supports default axis=1OK
Floor
 
 YesOKOK
GRU
 

NOT OK , under development
GatherYes
NOT
OK
, under development

GemmYesOKOK
GlobalAveragePoolYesOKOK
GlobalLpPool Yes
 
OK
NOT
OK
, under development
GlobalMaxPoolYes
 
OKOK
Greater Yes
NOT
OKOK
, under development
HardSigmoid YesOK
NOT
OK
, under development
Hardmax YesOKNOT OK
, under development
Identity
NOT OKOK
If


InstanceNormalization YesOK
NOT
OK
, under development
LRNYes OKOK
LSTM
 

NOT OK, under development
LeakyReluYesOKOK
LessYes OK
NOT
OK
, under development
LogYesOKOK
LogSoftMaxYes OK
NOT
OK
, under development
Loop


LpNormalization
 
 Yes
NOT

OK
, under development
LpPool
 
Yes
NOT
OK
, under development
LpPool

MatMulYesOKOK
MaxYesOKOK
MaxPoolYesOKOK
MaxRoiPoolYes OK
NOT
OK
, under development
MeanYes OK
NOT
OK
, under development
MinYesOKOK
MulYesOKOK
MultinomialYesOKOK
NegYesOKOK
NotYes OK
NOT
OK
, under development
OrYes 
NOT
OKOK
, under development
PReluYesOKOK
PadYesOKOK
PowYesPartial, only supports default axis=1OK
RNN
 

NOT OK, under development
RandomNormalYes OKOK
RandomNormalLikeYes OKOK
RandomUniformYes OKOK
RandomUniformLikeYes OKOK
ReciprocalYes OKOK
ReduceL1Yes OK
NOT
OK
, under development
ReduceL2 Yes
NOT
OKOK
, under development
ReduceLogSum YesOKNOT OK
, under development
ReduceLogSumExp YesOKNOT OK
, under development
ReduceMaxYes
 
OKOK
ReduceMeanYes
 
OKOK
ReduceMinYes
 
OKOK
ReduceProdYes
 
OKOK
ReduceSum
 
YesOKOK
ReduceSumSquareYes OKNOT OK
, under development
ReluYesOKOK
ReshapeYesOKOK
SeluYes
NOT OK, under developmentSigmoidYes
OKOK
Shape
OKOK
SigmoidYesOKOK
SinYesOKOK
Slice
SizeYesOK
NOT
OK
, under development
Softmax
SliceYes
PARTIAL
Partial,
only
supports
default
axis=1OK
SoftmaxYesOKOK
SoftplusYes
NOT
OKOK
, under development
Softsign Yes
NOT
OKOK
, under development
SpaceToDepth Yes
 
OK
NOT
OK
, under development
SplitYesOK
NOT
OK
, under development
SqrtYes OKOK
SqueezeYes
 
OKOK
Sub
 
YesOKOK
SumYesOKOK
TanYesOKOK
TanhYesOKOK
Tile YesNOT OK, under developmentNOT OK, under development
TopKYesOK, in reviewOK, in review
TransposeYesOKOK
Xor
Unsqueeze
 
Yes
NOT
OK,
under developmentexperimental ATen NOT OK, under developmentexperimental Affine NOT OK, under developmentexperimental ConstantFill NOT OK, under developmentexperimental Crop NOT OK, under developmentexperimental FC NOT OK, under developmentexperimental GRUUnit NOT OK, under developmentexperimental GivenTensorFill NOT OK, under developmentexperimental Identity NOT OK, under developmentexperimental ImageScaler NOT OK, under developmentexperimental MeanVarianceNormalization NOT OK, under developmentexperimental ParametricSoftplus NOT OK, under developmentexperimental Scale NOT OK, under developmentexperimental ScaledTanh NOT OK, under developmentexperimental ThresholdedRelu NOT OK, under developmentexperimental Upsample NOT OK, under development

 

In reviewOK
UpsampleYesOK, in reviewOK, in review
XorYes OKOK








experimental ATen
NOT OK
experimental Affine
NOT OK
experimental ConstantFill
NOT OK
experimental GRUUnit
NOT OK
experimental GivenTensorFill
NOT OK
experimental ImageScaler YesOK, In review
experimental LoopIndex
NOT OK
experimental MeanVarianceNormalization
NOT OK
experimental ParametricSoftplus
NOT OK
experimental Scale
NOT OK
experimental ScaledTanh
NOT OK
experimental ThresholdedRelu
NOT OK


ONNX models coverage:

ONNX backend tests include below models. The table lists current status on Mxnet:

 


ONNX ModelsMxnet Support
bvlc_alexnetOK
densenet121OK
inception_v1
NOT
OK
, precision difference due to issue
inception_v2
NOT
OK
, precision difference due to issue
resnet50OK
shufflenet
NOT
OK,
precision difference due to issue
In review
squeezenetOK
vgg16OK
vgg19OK

...

bvlc_googlenet

...

OK

...

bvlc_caffenet

 

 

 

 

 

 

 

...

OK
bvlc-rcnn-ilsvrc13OK