目录
1. caffe
2. TensorFlow
3. Pytorch
4. PaddlePaddle
5. darknet
1. caffe
GitHub - BVLC/caffe: Caffe: a fast open framework for deep learning.
Caffe (Convolutional Architecture for Fast Feature Embedding) Caffe是一个早期流行的深度学习框架,特别擅长于图像分类、分割和物体检测等计算机视觉任务。
但是Caffe已经多年不更新维护了。
优点:完全基于c++开发,速度优势明显。
缺点:学习成本大,且已经无人维护。
适合程度:☆☆☆
2. TensorFlow
GitHub - tensorflow/tensorflow: An Open Source Machine Learning Framework for Everyone
TensorFlow虽然主要使用Python作为开发接口,但它底层是用C++编写的,并且提供C++ API,允许用户直接使用C++进行开发。
优点:一直有人维护,且是老牌的框架,社区资源丰富;python和c++都得到同等支持;
缺点:接口偏向于c++,相对于pytorch学习成本高。
适合程度:☆☆☆☆☆
3. Pytorch
https://github.com/pytorch/pytorch
PyTorch同样以Python为主导,但它的C++前端(torch::script)和C++ API允许开发者使用C++构建和运行神经网络模型。
优点:一直有人维护,且是老牌的框架(但没有tensorflow老牌),社区资源丰富(比tensorflow还丰富);与 Python 深度集成,使其对 Python 程序员来说直观且易于使用,学习成本低;
缺点:主要支持python,对c++支持不够,比如没有DDP模块不能分布式训练模型。
适合程度:☆☆☆☆
4. PaddlePaddle
https://github.com/PaddlePaddle/Paddle
百度的PaddlePaddle提供了python和C++接口,用于构建和部署深度学习模型,特别是在边缘计算和嵌入式设备上。
优点:一直有人维护,国产框架,拥有详细完备的中文教程; 学习成本低;
缺点:相对老牌框架,此框架资源较少,很多最新的网络要完全自己实现;提供了c++接口的框架Paddle Lite,但是此框架目前仅支持部署,不支持训练。
适合程度:☆☆☆
5. darknet
https://github.com/pjreddie/darknet
Darknet是一个开源的神经网络框架,由Joseph Redmon开发,主要用于实现深度学习中的目标检测、分类和回归任务。它完全用C语言编写,这使得它非常轻量级且易于在各种平台上部署,包括嵌入式系统。 原作者已经停止更新。
后面另一个大神Alexey Bochkovskiy继续更新了darknet。语言包含了c++了。
优点:由于其高效性,Darknet可以用于需要实时处理的应用,如视频流分析;对于计算资源有限的设备,如无人机或边缘设备,Darknet是一个不错的选择。
缺点:darknet不提供像上述框架那样丰富的API和模型定制选项;资源有限,虽然Darknet有一个活跃的社区,但其规模和资源通常比不上更流行的框架;学习成本贼高,不建议新手尝试。
适合程度:☆☆☆