原地址:https://www.leiphone.com/news/201702/T5e31Y2ZpeG1ZtaN.html
目前主流的的深度學習框架
主流深度學習框架包括Tensorflow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、Theano、Deeplearning4、Lasagne、Neon等等。
各個開源框架在 GitHub 上的數據統計
目前主流的深度學習平臺均支持Python接口。
可以看出其中Tensorflow在關注度和用戶數上占據絕對優勢。這里簡單介紹下Tensorflow平臺。
Tensorflow
- 高階機器學習庫,核心代碼用C++實現,核心代碼提供C++接口,具有Python、Go、Java接口,通過SWIG實現。
- 支持自動求導。
- TensorFlow 也有內置的 TF.Learn 和 TF.Slim 等上層組件可以幫助快速地設計新網絡,并且兼容 Scikit-learn estimator 接口,可以方便地實現 evaluate、grid search、cross validation 等功能
- 數據并行模式
TensorFlow 有獨立的 Variable node,不像其他框架有一個全局統一的參數服務器,因此參數同步更自由。
- 靈活的移植性
可以將同一份代碼幾乎不經過修改就輕松地部署到有任意數量 CPU 或 GPU 的 PC、服務器或者移動設備上。
- 極快的編譯速度
- 可視化組件:TensorBoard
TensorBoard 是 TensorFlow 的一組 Web 應用,用來監控 TensorFlow 運行過程,或可視化 Computation Graph。TensorBoard 目前支持五種可視化:標量(scalars)、圖片(images)、音頻(audio)、直方圖(histograms)和計算圖(Computation Graph)。TensorBoard 的 Events Dashboard 可以用來持續地監控運行時的關鍵指標,比如 loss、學習速率(learning rate)或是驗證集上的準確率(accuracy);Image Dashboard 則可以展示訓練過程中用戶設定保存的圖片,比如某個訓練中間結果用 Matplotlib 等繪制(plot)出來的圖片;Graph Explorer 則可以完全展示一個 TensorFlow 的計算圖,并且支持縮放拖曳和查看節點屬性。
- 異構性:支持多種硬件平臺和操作系統
- 分布式:16塊GPU達到單塊GPU的15倍性能,分布式通信基于socket的RPC,而不是速度更快的RDMA
- TensorFlow Serving:提供模型的導出功能,并部署成對外提供預測服務的RESTful接口。有了這個組件,TensorFlow 就可以實現應用機器學習的全流程:從訓練模型、調試參數,到打包模型,最后部署服務.
TensorFlow Serving 是一個為生產環境而設計的高性能的機器學習服務系統。它可以同時運行多個大規模深度學習模型,支持模型生命周期管理、算法實驗,并可以高效地利用 GPU 資源,讓 TensorFlow 訓練好的模型更快捷方便地投入到實際生產環境