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