附录1: 前端算子支持情况

以下是Deep Learning Framework的Ops和Models支持情况。

下面的表格中,未标注的Ops/Layer表示暂未支持,未标注的model表示暂未测试。

一般情况下,若用户model中所有的算子都包含在支持的算子中,则该model可以支持。 这里也列出了各个框架已经测试的model,供用户参考。

为了方便,我们在bmnetc/bmnett/bmnetm/bmnetp/bmnetd工具中提供了参数(–mode=check)来检查是否model 存在未支持的Float32算子,详情请见各个工具的说明。

Caffe支持情况

Caffe无版本限制,只要是Github上的官方开源版本即可。

Caffe已支持的算子如下:

  • 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

Caffe已测试的model如下所示(以下列表仅列出了知名的常见网络,实际支持范围要大于该列表):

  • 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支持情况

TensorFlow目前支持的版本为: >=1.10.0。

已支持的算子如下(也可通过命令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已测试的model如下(以下列表仅列出了知名的常见网络,实际支持范围要大于该列表):

  • 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支持情况

Pytorch目前支持的版本为: >= 1.3.x。

已支持的算子如下(也可通过命令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已测试的model如下所示(以下列表仅列出了知名的常见网络,实际支持范围要大于该列表):

  • 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支持情况

MxNet目前支持的版本为: >= 1.3.0。

已支持的算子如下所示(也可通过命令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

MxNet已测试的model如下所示(以下列表仅列出了知名的常见网络,实际支持范围要大于该列表):

  • 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支持情况

Darknet无版本限制,只要是Github上的官方开源版本即可。

Darknet已支持的层如下所示:

  • Activate

  • Route

  • Upsample

  • Sum

  • Batchnorm

  • Scale

  • Convolution

  • Connected

  • Maxpool

  • Softmax

  • Crop

  • Reorg

  • Shortcut

  • Yolo

  • Region

Darknet已测试的model如下所示(以下列表仅列出了知名的常见网络,实际支持范围要大于该列表):

  • Alexnet

  • Vggnet16

  • Yolo v2

  • Yolo v3

  • Yolov3_tiny

  • Yolo v4

ONNX支持情况

ONNX目前支持opset_version==12

ONNX已支持的算子如下所示(通过命令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

ONNX已测试的model如下所示(以下列表仅列出了知名的常见网络,实际支持范围要大于该列表):

  • 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支持情况

PADDLE目前支持的版本为: >= 1.8.0

PADDLE已支持的层如下所示(通过命令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已测试的model如下所示(以下列表仅列出了知名的常见网络,实际支持范围要大于该列表):

  • ANN_ResNet101

  • Mobilenet

  • PaddleOCR

  • Resnet

  • TSM

  • Yolov3