1.TensorRT
TensorRT是NVIDIA公司推出的面向GPU算力的推理框架,在服务端和嵌入式设备上都有非常好的效果,但是底层不开源。TensorRT的合作方非常的多,主流的框架都支持。如果有GPU的话,传统的算子可以用CUDA,深度学习搞成TensorRT。
出生地:NVIDIA
特点:自产自销NVIDIA不多解释,框架支持很多,生态很棒,稳定性高主要调包语言:Python、C/C++
推荐平台:NVIDIA Jetson系列的嵌入式、NVIDIA的GPU(一条龙)
支持模型:TensorFlow1.x、TensorFlow2.x、Pytorch、ONNX、PaddlePaddle、MXNet、Caffe、Theano,Torch,Lasagne,Blocks。
入门推荐:非常适合入门,直接在自己的GPU上做测试就行。
2.TF-Lite
TF-Lite是谷歌针对移动端的推理框架,非常的强大。强大的原因在于Keras、TensorFlow的模型都能使用,而且有专门的TPU和安卓平台,这种一条龙的服务让TensorFlow在部署方面还在称霸。TF-Lite如果用Keras、TensorFlow的模型去转换一般来说都是脚本直接开搞,自己重构的部分相对少很多。
出生地:Google
特点:一条龙的服务专属平台
主要调包语言:Python、C/C++、Java支持模型:Keras、TensorFlow、ONNX
推荐平台:几乎所有的ARM处理器和微控制器(树莓派,甚至单片机)、TPU专享
入门推荐:TFboys(TensorFlow使用者)的必备,毕竟一条龙,还有机会了解TPU,非常贴心。
3.OpenVINO
OpenVINO是Intel的推理框架,一个超级强的推理部署工具。工具包中提供了很多便利的工具,例如OpenVINO提供了深度学习推理套件(DLDT),该套件可以将各种开源框架训练好的模型进行线上部署,除此之外,还包含了图片处理工具包OpenCV,视频处理工具包Media SDK。如果是针对Intel的加速棒或者工控机上部署真的是非常不错的。
出生地:Intel
特点:面向Intel设备的加速,便捷使用,安装和SDK很方便主要调包语言:C/C++、Python
支持模型:TensorFlow、Pytorch、ONNX、MXNet、PaddlePaddle推荐平台:自己的电脑、Intel神经网络加速棒、Intel的FPGA
入门推荐:作为入门还是不错的,只是落地场景有点少,毕竟现在是边缘设备的时代 因为工业上工控机多但是深度学习模型用的还是少,很多都是传统的算法,很多落地场景中上Intel的处理器并不占优势。
4.CoreML
CoreML是苹果公司推出针对ios以及macOS系统部署的机器学习平台,底层不开源。在苹果设备上,CoreML的速度是最快的,但是也只能用于苹果的设备上。
出生地:Apple
特点:面向苹果设备,专业设备上速度第一,稳定、入门简单主要调包语言:C/C++、Python、Obj-C、Swift
支持模型:TensorFlow、ONNX、Pytorch、ONNX、MXNet、Caffe推荐平台:iMac、MacBook、iPhone、iPad、AppleWatch
入门推荐:针对Apple的开发者,业余选手得买个MBP
5.NCNN
NCNN是腾讯推出的推理框架,一定意义上是之前使用非常广的一个推理框架,社区做的也非常棒。NCNN的速度是超过TFLite的,但是有点麻烦的是之前得经常自己用C去复现一些算子(框架起步都这样),现在因为使用的人数很多,因此算子很多。NCNN对于X86、GPU均有支持,在嵌入式、手机上的表现非常好。
出生地:腾讯优图实验室
特点:面向移动端的加速、手机处理器的加速单元支持很棒主要调包语言:C/C++、Python
支持模型:TensorFlow、ONNX、Pytorch、ONNX、MXNet、DarkNet、Caffe推荐平台:安卓/苹果手机、ARM处理器设备
入门推荐:对于嵌入式或者APP开发有经验的同学绝对首推的
6.MNN
MNN是阿里巴巴推出的移动端框架,现在也支持模型训练,支持OpenCL,OpenGL,Vulkan和Metal等。同样的设备,MNN的部署速度是非常快的,树莓派3B上cpu的加速是NCNN速度的3被以上,而且文档非常的全,代码整洁清晰,非常适合开发者使用。
出生地:阿里巴巴多部门合作
特点:面向移动端的加速、应该是现在速度之最主要调包语言:C/C++、Python
支持模型:TensorFlow、ONNX、Pytorch、MXNet、NCNN、Caffe、TF-Lite推荐平台:安卓/苹果手机、ARM处理器设备
入门推荐:首推的部署推理框架,绝对的好用,在苹果设备上的速度也很棒。MNN框架感觉比NCNN稳定一些,而且源码非常整洁,研究底层也是非常方便。
7.Tenigne
Tenigne-Lite是OpenAILab推出的边缘端推理部署框架,OpenCV官方在嵌入式上的部署首推Tenigne-Lite。现在对于RISC-V、CUDA、TensorRT、NPU的支持非常不错。Tengine是现在来说感觉安装环境中bug最少的框架,几乎安按照文档走不会出问题的。
出生地:OpenAILab
特点:面向移动端的加速、速度和MNN不相上下、对于嵌入式的支持非常好主要调包语言:C/C++、Python
支持模型:TensorFlow、ONNX、DarkNet、MXNet、NCNN、Caffe、TF-Lite、NCNN推荐平台:安卓手机、ARM处理器设备、RISC-V
入门推荐:嵌入式开发的小伙伴可以入手 Tengine-Lite是个朝气蓬勃的框架,虽然出的时间并没有其他框架早,但是框架性能、易用性还是非常适合嵌入式玩家的。
8.NNIE
NNIE 即 Neural Network Inference Engine,是海思 SVP 开发框架中的处理单元之一,主要针对深度学习卷积神经网络加速处理的硬件单元,可用于图片分类、目标检测等 AI 应用场景。
支持现有大部分公开的卷积神经网络模型,如 AlexNet、VGG16、ResNet18、ResNet50、GoogLeNet 等分类网络,Faster R-CNN、YOLO、SSD、RFCN 等检测目标网络,以及 FCN 、SegNet 等分割场景网络。目前 NNIE 配套软件及工具链仅支持以 Caffe 框架,使用其他框架的网络模型需要转化为 Caffe 框架下的模型。
华为海思NNIE非常强大,之前移动端真的快霸主,但是现在受制约芯片停产。
9.RKNN
Rockchip提供RKNN-Toolkit开发套件进行模型转换、推理运行和性能评估。
模型转换:支持 Caffe、Tensorflow、TensorFlow Lite、ONNX、Darknet 模型,支持RKNN 模型导入导出,后续能够在硬件平台上加载使用。
模型推理:能够在 PC 上模拟运行模型并获取推理结果,也可以在指定硬件平台RK3399Pro Linux上运行模型并获取推理结果。
性能评估:能够在 PC 上模拟运行并获取模型总耗时及每一层的耗时信息,也可以通过联机调试的方式在指定硬件平台 RK3399Pro Linux上运行模型,并获取模型在硬件上运行时的总时间和每一层的耗时信息。