深度學習框架對比

原地址: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 訓練好的模型更快捷方便地投入到實際生產環境

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容