背景:在学习深度学习的时候,往往需要做的一个决策是:现在深度学习框架这么多,我应该使用哪种?选取一件趁手的兵器,总是西天取经的第一步。
Who the Super Star?
Tensorflow
Github star: 104K
Github fork: 65,022
Language: C++
API Language:
Python/Java/C++/Go/JavaScript/Swift
Author: Google
Community: 38K Repos
Companies using TF:
https://www.tensorflow.org/
Keras
Github star: 31.3K
Github fork: 11,712
Language:
Python (Based on Tensorflow, Theano or CNTK)
API Language: Python/R/
Author: François Chollet (From Google)
Community: 12K Repos
Caffe
Github star: 24.7K
Github fork: 15,159
Language: C++
API Language: C++/Python/Matlab
Author:
Yangqing Jia (From Google/UC Berkeley)
Community: 5K Repos
Pytorch
Github star: 16.9K
Github fork: 3,894
Language: C++ (Based on Torch)
API Language: Python
Author: Facebook
Community: 8K Repos
Theano
Github star: 8.3K
Github fork: 2,450
Language: Python
API Language: Python
Author: Université de Montréal
Community: 2K Repos
Paddle
Github star: 7.2K
Github fork: 1,966
Language: C++
API Language: Python/C++
Author: Baidu
Community: 1K Repos
结论:
流行度评比:从上面的数据可以看到,Tensorflow和基于Tensorflow/Theano/CHTK的Keras的受欢迎流行度是属于Super Star级别的。
框架选择:
Tensorflow作为底层框架首选,其他上层框架根据自身具体情况选择。
Why Tensorflow
Tensorflow的流行度和社区活跃度都是最高的,同时因为活跃上层框架Keras也有基于Tensorflow的实现,Tensorflow的流行决定了Tensorflow的框架完善性和进化能力都是有底层保障的。同时,由于Tensorflow背后有Google大佬的支持,所以工业界工程的实现都是有支持,也保证了Tensorflow的长久完善维护,不至于出现因为作者不更新维护导致整个框架被主流抛弃的顾虑。
Others?
在其他框架中,需要考虑到的因素包括:1. 框架背后的公司支持和社区热度,不至于不再维护导致巨大的机会成本;2. 对于具体任务不同框架的优劣势;3. 不同框架开源项目的多少;个人对于框架的喜好,对于框架语言的适应性。以上考虑因素的主要目的是综合考虑目标框架的长期可持续发展,以及对于自身项目实现的高效便捷,根据自身的实际情况定制选取合适的框架。
领取专属 10元无门槛券
私享最新 技术干货