原文地址:https://blog.csdn.net/li528405176/article/details/83857286
tensorflow是Google開源的基於數據流圖的機器學習框架,支持python和c++程序開發語言。轟動一時的AlphaGo就是使用tensorflow進行訓練的,其命名基於工作原理,tensor 意為張量(即多維數組),flow 意為流動。即多維數組從數據流圖一端流動到另一端。目前該框架支持 Windows、Linux、Mac乃至移動手機端等多種平台。下圖為其數據流動示意圖。
Theano 基於 Python,是最早的深度學習開源框架。但是Theano框架從2017年開始已經停止更新
Theano 嚴格來說是一個擅長處理多維數組的 Python 庫,十分適合與其它深度學習庫結合起來進行數據探索,高效地解決多維數組的計算問題。它設計的初衷是為了執行深度學習中大規模神經網絡算法的運算。其實,Theano 可以被更好地理解為一個數學表達式的編譯器:用符號式語言定義你想要的結果,該框架會對你的程序進行編譯,在 GPU 或 CPU 中高效運行。
Keras是基於TensorFlow和Theano(由加拿大蒙特利爾大學開發的機器學習框架)的深度學習庫,是由純python編寫而成的高層神經網絡API,也僅支持python開發。它是為了支持快速實踐而對tensorflow或者Theano的再次封裝,讓我們可以不用關注過多的底層細節,能夠把想法快速轉換為結果。Keras默認的后端為tensorflow,如果想要使用theano可以自行更改。tensorflow和theano都可以使用GPU進行硬件加速,往往可以比CPU運算快很多倍。因此如果你的顯卡支持cuda的話,建議盡可能利用cuda加速模型訓練。
流行的機器學習框架一覽表:(表引自:http://blog.51cto.com/zero01/2065598)