Appendix 1: Support of Front-end Operators

The following is the Ops and Models support of the Deep Learning Framework.

In the table below, the unmarked Ops/Layer means it has not been supported yet, and the unmarked model means it has not been tested yet.

Generally, the model can be supported if all operators in the user model are included in the supported operators. This also lists the tested model of each framework for user reference.

For convenience, we have provided parameters (–mode = check) in bmnetc/bmnett/bmnetm/bmnetp/bmnetd tools to check whether the model has unsupported Float32 operator. Please refer to the descriptions of each tool for details.

Caffe support

Caffe has no version restriction, only if it is the official open source version on Github.

The operators supported by Caffe are as follows:

  • AbaVal

  • ArgMax

  • BN

  • BatchNorm

  • Bias

  • Concat

  • Convolution

  • Crop

  • Deconvolotion

  • DetectionOutput

  • ELU

  • Eltwise

  • Flatten

  • InnerProduct

  • Interp

  • LSTM

  • Log

  • Normalize

  • PRelu

  • PSROIPooling

  • PadChannel

  • Permute

  • Pooling

  • Power

  • Priorbox

  • ROIAlign

  • ROIPooling

  • RPN

  • Relu

  • Reduction

  • Reorg

  • Reshape

  • Reverse

  • Scale

  • ShuffleChannel

  • Sigmoid

  • Slice

  • Softmax

  • Split

  • TanH

  • Tile

  • Upsample

  • UpsampleCopy

  • Yolo

  • Yolov3DetectionOuput

The tested model of Caffe are as follows (only well-known common networks are listed, and the actual support scope is larger than this list):

  • Alexnet

  • Mtcnn

  • Googlenet v1/v2/v3

  • Mobilenet v1/v2/v3

  • Pose

  • r50

  • Resnet 18/34/50/101/152

  • Vggnet 16/19

  • Yolo v1/v2/v3

  • SSD

  • SSH

  • densenet

  • maskrcnn

  • inception

  • ICNet

  • Squeezenet

  • unet

  • deeplab_v2

  • vanface

  • shufflenet

  • segnet

  • dual

  • rfcn

  • faster_rcnn

  • landmark

  • pspnet

  • OCR_detection

  • Erfnet

  • Enet

TensorFlow support

The currently supported version of TensorFlow is: >= 1.10.0.

The supported operators are as follows (the currently supported operators can also be listed by the command python3 -m bmnett –list_ops):

  • All

  • Abs

  • Acos

  • Acosh

  • Add

  • AddV2

  • AddN

  • Any

  • ArgMax

  • ArgMin

  • Asin

  • Asinh

  • Assert

  • Atanh

  • AvgPool

  • AvgPool3D

  • BatchMatMul

  • BatchMatMulV2

  • BatchToSpaceND

  • BatchnormWithGlobalNormalizatin

  • BiasAdd

  • Binary

  • BroadcastTo

  • Cast

  • Ceil

  • Concat

  • ConcatV2

  • Conv2D

  • Conv2DBackpropInput

  • Conv3D

  • Conv3DBackpropInput

  • Cos

  • Cosh

  • CropAndResize

  • DenseToDenseSetOperation

  • DepthToSpace

  • DepthwiseConv2dNative

  • Div

  • Einsum

  • Elu

  • Enter

  • Equal

  • Erf

  • Exit

  • Exp

  • ExpandDims

  • Expm1

  • Fill

  • Floor

  • FloorMod

  • FloorDiv

  • FusedBatchNorm

  • FusedBatchNormV3

  • Gather

  • GatherNd

  • GatherV2

  • Greater

  • GreaterEqual

  • Identity

  • IdentityN

  • IsFinite

  • LeakyRelu

  • Less

  • LessEqual

  • Log

  • Log1p

  • LogSoftmax

  • LogicalAnd

  • LogicalNot

  • LogicalOr

  • LoopCond

  • LRN

  • MatMul

  • MaxtrixBandPart

  • Max

  • Maximum

  • MaxPool

  • MaxPool3D

  • Mean

  • Merge

  • Minimum

  • MirrorPad

  • Mul

  • Neg

  • NextIteration

  • NoOp

  • NonMaxSuppressionV2

  • NonMaxSuppressionV3

  • NonMaxSuppressionV5

  • NotEqual

  • OneHot

  • OnesLike

  • Pack

  • Pad

  • PadV2

  • Placeholder

  • PlaceholderWithDefault

  • Pool

  • Pool3D

  • Pow

  • Prod

  • RandomUniform

  • RandomUniformInt

  • Range

  • Rank

  • Reciprocal

  • Reduction

  • Relu

  • Relu6

  • Reshape

  • ResizeBilinear

  • ResizeNearestNeighbor

  • Resize

  • ReverseV2

  • ReverseSequence

  • Round

  • Rsqrt

  • ScatterNd

  • Select

  • Shape

  • Sigmoid

  • Sign

  • Sin

  • Sinh

  • Size

  • Slice

  • Softmax

  • Softplus

  • Softsign

  • SpaceToBatchND

  • SpaceToDepth

  • SparseToDense

  • Split

  • SplitV

  • Sqrt

  • Square

  • SquaredDifference

  • Squeeze

  • StopGradient

  • StridedSlice

  • Sub

  • Sum

  • SwishF32

  • Switch

  • Tan

  • Tanh

  • TensorArrayConcatV3

  • TensorArrayGatherV3

  • TensorArrayReadV3

  • TensorArrayScatterV3

  • TensorArraySizeV3

  • TensorArraySplitV3

  • TensorArrayV3

  • TensorArrayWriteV3

  • TensorScatterUpdate

  • Tile

  • TopKV2

  • Transpose

  • Unpack

  • Unique

  • Where

  • ZerosLike

TensorFlow’s tested model are as follows (only well-known common networks are listed, and the actual support scope is larger than this list):

  • Bert

  • Deeplabv3

  • EfficientDet

  • EfficientNet

  • Espcn

  • Faster rcnn

  • Fcnn

  • Gan

  • Inception v1/v2/v3/v4

  • Informer

  • Lstm/GRU

  • MaskRCNN

  • Mobilenet v1/v2

  • Nasnet large/mobile

  • Ocr

  • Pedes Resnet50 V2

  • Pnasnet_mobile

  • Resnet 50/101/152 v1/v2

  • rl_apex

  • Segmentation

  • SSD Inception v2

  • SSD Mobilenet 300

  • SSD Mobile v2

  • SSD Resnet50 fpn

  • SSD Vgg 300

  • Vggnet 16/19

  • vqvae

  • Yolo v3

Pytorch support

The currently supported version of Pytorch is: >= 1.3.x.

The supported operators are as follows (the currently supported operators can also be listed by the command python3 -m bmnetp –list_ops):

  • aten::_and_

  • aten::_getitem_

  • aten::_convolution

  • aten::abs

  • aten::abs_

  • aten::adaptive_avg_pool1d

  • aten::adaptive_avg_pool2d

  • aten::adaptive_avg_pool3d

  • aten::adaptive_max_pool1d

  • aten::adaptive_max_pool2d

  • aten::add

  • aten::add_

  • aten::addmm

  • aten::affine_grid_generator

  • aten::alpha_dropout

  • aten::alpha_dropout_

  • aten::arange

  • aten::argmax

  • aten::argmin

  • aten::avg_pool1d

  • aten::avg_pool2d

  • aten::avg_pool3d

  • aten::batch_norm

  • caffe2::BatchPermutation

  • caffe2::BBoxTransform

  • aten::bmm

  • aten::bool

  • aten::cat

  • caffe2::BoxWithNMSLimit

  • aten::cat

  • aten::ceil

  • aten::celu

  • aten::celu_

  • aten::chunk

  • aten::clamp

  • aten::clamp_

  • aten::clamp_max

  • aten::clamp_max_

  • aten::clamp_min

  • aten::clamp_min_

  • aten::clone

  • caffe2::CollectRpnProposals

  • aten::constant_pad_nd

  • aten::contiguous

  • aten::copy

  • aten::cos

  • aten::cos_

  • aten::cumsum

  • aten::detach

  • aten::detach_

  • caffe2::DistributeFpnProposals

  • aten::div

  • aten::div_

  • aten::dropout

  • aten::dropout_

  • aten::einsum

  • aten::elu

  • aten::elu_

  • aten::embedding

  • aten::embedding_bag

  • aten::empty

  • aten::eq

  • aten::eq_

  • aten::erf

  • aten::erf_

  • aten::erfc

  • aten::erfc_

  • aten::exp

  • aten::exp_

  • aten::expand

  • aten::expand_as

  • aten::expm1

  • aten::expm1_

  • aten::feature_dropout

  • aten::feature_dropout_

  • aten::flatten

  • aten::floor

  • aten::floor_

  • aten::floor_divide

  • aten::floor_divide_

  • aten::full_like

  • aten::full

  • aten::gather

  • aten::ge

  • aten::ge_

  • aten::gelu

  • aten::gelu_

  • caffe2::GenerateProposals

  • aten::grid_sampler

  • aten::group_norm

  • aten::gru

  • aten::gt

  • aten::gt_

  • aten::hardshrink

  • aten::hardshrink_

  • aten::hardsigmoid

  • aten::hardsigmoid_

  • aten::hardwish

  • aten::hardwish_

  • aten::hardtanh

  • aten::hardtanh_

  • aten::index

  • aten::index_put

  • aten::index_put_

  • aten::instance_norm

  • aten::Int

  • aten::isFloatingPoint

  • aten::layer_norm

  • aten::le

  • aten::le_

  • aten::leaky_relu

  • aten::leaky_relu_

  • aten::lerp

  • aten::lerp_

  • aten::linear

  • aten::linspace

  • aten::log

  • aten::log_

  • aten::log10

  • aten::log10_

  • aten::log1p

  • aten::log1p_

  • aten::log2

  • aten::log2_

  • aten::log_sigmoid

  • aten::log_softmax

  • aten::lstm

  • aten::lt

  • aten::lt_

  • aten::matmul

  • aten::max

  • aten::max_

  • aten::max_pool1d

  • aten::max_pool1d_with_indices

  • aten::max_pool2d

  • aten::max_pool2d_with_indices

  • aten::max_pool3d

  • aten::mean

  • aten::meshgrid

  • aten::min

  • aten::min_

  • aten::mm

  • aten::mul

  • aten::mul_

  • aten::narrow

  • aten::ne

  • aten::ne_

  • aten::neg

  • aten::neg_

  • aten::new_full

  • aten::new_zeros

  • aten::nonzero

  • aten::nonzero_numpy

  • aten::norm

  • aten::ones

  • aten::ones_like

  • aten::permute

  • aten::pixel_shuffle

  • aten::pixel_unshuffle

  • aten::pow

  • aten::pow_

  • aten::prelu

  • aten::prelu_

  • aten::reciprocal

  • aten::reciprocal_

  • aten::reflection_pad1d

  • aten::reflection_pad2d

  • aten::relu

  • aten::relu_

  • aten::repeat

  • aten::reshape

  • aten::reshape_

  • torchvision::roi_align

  • caffe2::RoIAlign

  • aten::rsqrt

  • aten::rsqrt_

  • aten::ScalarImplicit

  • aten::scale_tensor

  • aten::select

  • aten::selu

  • aten::selu_

  • aten::sigmoid

  • aten::sigmoid_

  • aten::sign

  • aten::sign_

  • aten::silu

  • aten::silu_

  • aten::sin

  • aten::sin_

  • aten::size

  • aten::slice

  • aten::softmax

  • aten::softplus

  • aten::softshrink

  • aten::softsign

  • aten::softsign_

  • aten::sort

  • aten::split

  • aten::split_with_sizes

  • aten::sqrt

  • aten::sqrt_

  • aten::squeeze

  • aten::squeeze_

  • aten::stack

  • aten::sub

  • aten::sub_

  • aten::sum

  • aten::t

  • aten::t_

  • aten::tanh

  • aten::tanh_

  • aten::threshold

  • aten::threshold_

  • aten::to

  • aten::topk

  • aten::transpose

  • aten::transpose_

  • aten::true_divide

  • aten::true_divide_

  • aten::type_as

  • aten::unbind

  • aten::unfold

  • aten::unsqueeze

  • aten::upsample_nearest2d

  • aten::upsample_bilinear2d

  • aten::values

  • aten::view

  • aten::view_

  • aten::view_as

  • aten::view_as_

  • aten::where

  • aten::where_

  • aten::zero_

  • aten::zeros

  • aten::zeros_like

Pytorch’s tested model are as follows (only well-known common networks are listed, and the actual support scope is larger than this list):

  • Alexnet

  • Anchors

  • Anchors_v1

  • Bert

  • CCN

  • CRNN

  • Ctpn

  • Darknet

  • DCGAN_generator

  • Deeplabv3

  • Densenet

  • Detectron

  • DLRM

  • deepwide

  • Eca mobilenet

  • Face_alignment

  • GAN

  • googlenet

  • GRU

  • Inception v2/v3

  • Lprnet

  • Mnasnet

  • Mobilenet v2/v3

  • OCR_EAST

  • Osd

  • Ranknet

  • Resnet 50/101/152

  • Retinaface

  • Retrieval_NetVLAD

  • Seg_deeplab

  • Se resenet

  • Shufflenet

  • Slowfast

  • SoloV2

  • Squeezenet

  • SSD300 Mobilenet v2

  • SSD300 vgg16

  • Stn

  • Vggnet 16/19

  • Vot

  • Yolo v3/v4/v5

  • YOLOX

MxNet support

The currently supported version of MxNet is: >= 1.3.0.

The supported operators are as follows (the currently supported operators can also be listed by the command python3 -m bmnetm –list_ops):

  • Activation

  • argsort

  • BatchNorm

  • broadcast_mul

  • broadcast_div

  • broadcast_plus

  • broadcast_minus

  • broadcast_sub

  • broadcast_add

  • broadcast_maximum

  • broadcast_minimum

  • broadcast_greater

  • broadcast_greater_equal

  • broadcast_lesser

  • broadcast_lesser_equal

  • broadcast_equal

  • broadcast_not_equal

  • broadcast_like

  • BlockGrad

  • Cast

  • Convolution

  • contrib_AdaptiveAvgPooling2D

  • contrib_BilinearResize2D

  • clip

  • Concat

  • crop

  • Deconvolution

  • exp

  • elemwise_add

  • elemwise_mul

  • elemwise_sub

  • expand_dims

  • equal

  • Flatten

  • FullConnected

  • gather_nd

  • InstanceNorm

  • LeakyReLU

  • LRN

  • L2Normalization

  • SoftmaxOutput

  • softmax

  • max

  • ones_like

  • Pad

  • Pooling

  • Reshape

  • reverse

  • repeat

  • relu

  • sigmoid

  • slice

  • slice_axis

  • SliceChannel

  • slice_like

  • shape_array

  • SwapAxis

  • squeeze

  • stack

  • transpose

  • tile

  • topk

  • UpSampling

  • where

  • zeros_like

  • _arange

  • _contrib_ROIAlign

  • _contrib_box_nms

  • _div_scalar

  • _equal_scalar

  • _greater_scalar

  • _greater_equal_scalar

  • _minus_scalar

  • _mul_scalar

  • _maximum_scalar

  • _minumum_scalar

  • _not_equal_scalar

  • _plus_scalar

  • _sub_scalar

The tested model of MxNet are as follows (only well-known common networks are listed, and the actual support scope is larger than this list):

  • Alexnet

  • alpha_pose_resnet101_v1b

  • arcface_r100_v1

  • center_net_resnet18_v1b

  • deeplabv3_resnet101

  • Densenet121

  • faster_rcnn_resnet50

  • fcn_resnet50

  • Googlenet

  • Inception_v3

  • Mobilenet v1/v2

  • Nasnet

  • Nin

  • residual_attention_net

  • Resnet50_v1

  • Resnet50_v2

  • Resnext_50

  • Senet

  • Se_resnet50

  • Se_resnext50

  • Squeezenet

  • SSD_512_mobilenet

  • SSD_512_resnet50

  • SSD_512_vgg16

  • TSN

  • Vggnet16

  • Yolo

  • Yolov3_darknet53

Darknet support

Darknet has no version restriction, only if it is the official open source version on Github.

The supported layers of Darknet are as follows:

  • Activate

  • Route

  • Upsample

  • Sum

  • Batchnorm

  • Scale

  • Convolution

  • Connected

  • Maxpool

  • Softmax

  • Crop

  • Reorg

  • Shortcut

  • Yolo

  • Region

The tested model of Darknet are as follows (only well-known common networks are listed, and the actual support scope is larger than this list):

  • Alexnet

  • Vggnet16

  • Yolo v2

  • Yolo v3

  • Yolov3_tiny

  • Yolo v4

ONNX support

ONNX currently supports opset_version==12.

Operators supported by ONNX are as follows (viewed by the command python3 -m bmneto –list_ops):

  • Abs

  • Acos

  • Acosh

  • Add

  • ArgMax

  • ArgMin

  • Asin

  • Asinh

  • Atanh

  • AveragePool

  • BatchNormalization

  • Cast

  • Ceil

  • Clip

  • Concat

  • Constant

  • ConstantOfShape

  • Conv

  • ConvTranspose

  • Cos

  • Cosh

  • DepthOfSpace

  • Div

  • Elu

  • Equal

  • Erf

  • Exp

  • Expand

  • Flatten

  • Floor

  • GRU

  • Gather

  • GatherND

  • Gemm

  • GlobalAveragePool

  • GlobalMaxPool

  • Greater

  • GreaterOrEqual

  • Identity

  • InstanceNormalization

  • IsInf

  • LayerNormalization

  • LSTM

  • LeakyRelu

  • Less

  • LessOrEqual

  • Log

  • MatMul

  • Max

  • MaxPool

  • Mean

  • Min

  • Mul

  • NonMaxSuppression

  • NonZero

  • Not

  • PRelu

  • Pad

  • Pow

  • RandomUniform

  • Range

  • Reciprocal

  • ReduceMax

  • ReduceMean

  • ReduceMin

  • ReduceL2

  • ReduceProd

  • ReduceSum

  • Relu

  • Reshape

  • Resize

  • RoiAlign

  • Round

  • ScatterND

  • Shape

  • Sigmoid

  • Sign

  • Sin

  • Sinh

  • Slice

  • Softmax

  • Softplus

  • SpaceToDepth

  • Split

  • Sqrt

  • Squeeze

  • Sub

  • Sum

  • Tan

  • Tanh

  • Tile

  • TopK

  • Transpose

  • Unsqueeze

  • Where

The tested model of ONNX are as follows (only well-known common networks are listed, and the actual support scope is larger than this list):

  • faster_rcnn

  • waveglow

  • widedeep

  • Bert

  • Mobilenet

  • Deeplabv3

  • Densenet

  • Inception v1/v2/v3

  • Mobilenet v1/v2/v3

  • Retinaface

  • SSD_mobilenetv2

  • CenterNet

  • SqueezeNet

  • Yolov4

  • Yolov5s

  • Resnet

  • SSD Resnet34

  • Postnet

PADDLE support

PADDLE currently supports the version: >= 1.8.0.

PADDLE’s supported layers are as follows (viewed by the command python3 -m bmpaddle –list_ops):

  • abs

  • arg_max

  • arg_min

  • assign

  • batch_norm

  • bilinear_interp

  • bilinear_interp_v2

  • bmm

  • cast

  • clip

  • concat

  • conv2d

  • conv2d_transpose

  • deformable_conv

  • depthwise_conv2d

  • dropout

  • elementwise_add

  • elementwise_div

  • elementwise_mul

  • elementwise_pow

  • elementwise_sub

  • equal

  • expand_v2

  • fill_constant

  • fill_constant_batch_size_like

  • flatten_contiguous_range

  • flip

  • floor

  • gather

  • greater_equal

  • greater_than

  • hard_sigmoid

  • hard_swish

  • leaky_relu

  • layer_norm

  • less_than

  • less_equal

  • log

  • logical_and

  • logical_or

  • logical_not

  • matmul

  • matmul_v2

  • matrix_nms

  • max_pool2d_with_index

  • meshgrid

  • mul

  • multiclass_nms

  • multiclass_nms2

  • multiclass_nms3

  • nearest_interp

  • nearest_interp_v2

  • pool2d

  • range

  • reduce_all

  • reduce_any

  • reduce_max

  • reduce_mean

  • reduce_min

  • reduce_prod

  • reduce_sum

  • relu

  • relu6

  • reshape

  • reshape2

  • rnn

  • scale

  • shape

  • sigmoid

  • slice

  • softmax

  • softplus

  • split

  • sqrt

  • squeeze

  • squeeze2

  • stack

  • swish

  • tanh

  • temporal_shift

  • tile

  • transpose

  • transpose2

  • unsqueeze

  • unsqueeze2

  • yolo_box

PADDLE’s tested model are as follows (only well-known common networks are listed, and the actual support scope is larger than this list):

  • ANN_ResNet101

  • Mobilenet

  • PaddleOCR

  • Resnet

  • TSM

  • Yolov3