参考文献
1.https://www.jianshu.com/p/16f69668ce25
一. 各大主流开源框架
- 这些框架都支持CUDA,所以表中的编程语言里没有将cuda写上。
- 还有一些没有列入表中,是因为他它们已经升级为大家更喜欢或者使用起来更简单的版本。
比如torch->pytorch,theano->lasagne。 - 还有一些小众的,以及一些移动端的框架,暂不讨论。
- 作为一个深度学习算法工程师,怎么着也得熟悉3个以上框架吧。不管怎么说tensorflow、pytorch是必须会的,因为这是目前开发者喜欢,开源项目最丰富的的两个框架。
- 如果是移动端开发,必须要回caffe.
- darknet、mxnet是高效轻量的框架。
- 如果你很懒,想写最少的代码实现功能,那么用keras吧。
- java程序员,需要掌握deeplearning4j。
二. 如何学习开源框架
通常需做到以下几点:
- 掌握数据的准备和使用
- 熟悉模型的定义
- 熟悉训练过程、结果可视化
- 掌握训练方法和测试方法
一个框架,官方都会开源若干的案例,最常见的案例就是以MNIST数据+预训练模型的形式,供大家快速获得结果。
我们还要学会处理自己的数据,自己的网络搭建、模型训练、测试等。
三. 几个开源框架简述
- caffe
(1) github地址:https://github.com/BVLC/caffe。
(2) 概述
- tensorflow
(1) github地址:https://github.com/tensorflow/tensorflow。
(2)概述
- Pytorch
(1) github地址:https://github.com/pytorch/pytorch。
(2)概述
- Mxnet
(1) github地址:https://github.com/apache/incubator-mxnet。
(2)概述
- Keras
(1) github地址:https://github.com/keras-team/keras。
(2)概述
- Paddlepaddle
(1) github地址:https://github.com/PaddlePaddle/Paddle。
(2)概述
- Darknet
(1) github地址:https://github.com/pjreddie/darknet。
(2)概述
- 其他框架,我本人不常用,暂不赘述了。
四. 几个开源框架模型的转换
有时候项目需要对不同框架的模型进行转换。
-
github有关于模型转换的汇总,基本不同框架之间的模型都有工具可以直接转换。https://github.com/ysh329/deep-learning-model-convertor
-
从现有网上资料来看,目前只有caffe能转成darknet的模型,其他都不能直接转darknet,需要曲线救国。
(1)
Tensorflow---->caffe MMdnn nn_tools
caffe---->darknet pytorch-caffe-darknet-convert
(2)
mxnet---->caffe MMdnn Mxnet2Caffe
caffe---->darknet pytorch-caffe-darknet-convert
(3)
caffe2---->pytorch ONNX
pytorch—>caffe pytorch-caffe-darknet-convert
caffe---->darknet pytorch-caffe-darknet-convert