Tensorflow高級封裝

Tensorflow比較靈活,可是它提供的操做比較低級,因而許多封裝庫應運而生。python

slim

導入方式編程

import tensorflow as tf
import tensorflow.contrib.slim as slim

這個庫直接放在contrib模塊中,不像tflearn、tflayer、keras都有本身獨立的pip包和官方文檔。後端

keras

優勢:網絡

  • 時間久遠
  • 社區活躍,文檔齊全
  • 多種後端:Theano、Tensorflow、MXNet
  • 跨平臺:無論是CPU仍是GPU,無論是Tensorflow仍是別的後端,它都對它們進行了封裝
  • 封裝完美:相似sklearn,封裝了各類細節
  • 學習成本低,編程簡單

缺點:架構

  • 運行效率低,這個問題隨着時間是會慢慢改善的
    國外測評說是由於 Keras 最開始只是爲了 Theano 而開發的,TensorFlow發佈後才寫支持TensorFlow的代碼,因此爲了兼容犧牲了效率
  • 封裝過於嚴密緻使可擴展性差

若是想要快速上手,keras是最簡單實用的。模塊化

tflearn

優勢:學習

  • 高效:比Keras高效,可是比不上TensorLayer高效

缺點:操作系統

  • 維護很差,沒有中文文檔,做者人數較少,開發力量薄弱

tensorlayer

優勢:code

  • 靈活,能夠很簡單地實現動態網絡結構(Neural Modular Network)
  • 文檔齊全,社區活躍。提供了 Google TensorFlow 官網的模塊化實現
  • 封裝完善:提供scikit-learn式的API,和專業級的API,適合新手到老手過渡

缺點:ip

  • 發佈時間較晚(16年8月份)

最後

把Tensorflow、Pytorch、MXNet、Caffe比做操做系統,那麼Keras就像Java,雖然慢些可是跨平臺封裝好。TensorLayer就像C#,運行快,可是隻適用於一個平臺。

若是隻是想在網絡架構、應用方面創新,keras無疑是最佳選擇。

參考資料

https://www.zhihu.com/question/50030898/answer/235137938

相關文章
相關標籤/搜索