背景:在學習深度學習的時候,往往需要做的一個決策是:現在深度學習框架這么多,我應該使用哪種?選取一件趁手的兵器,總是西天取經的第一步。
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. 不同框架開源項目的多少;個人對于框架的喜好,對于框架語言的適應性。以上考慮因素的主要目的是綜合考慮目標框架的長期可持續發展,以及對于自身項目實現的高效便捷,根據自身的實際情況定制選取合適的框架。
-
Why Tensorflow