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
最後
把Tensorflow、Pytorch、MXNet、Caffe比做操做系統,那麼Keras就像Java,雖然慢些可是跨平臺封裝好。TensorLayer就像C#,運行快,可是隻適用於一個平臺。
若是隻是想在網絡架構、應用方面創新,keras無疑是最佳選擇。
參考資料
https://www.zhihu.com/question/50030898/answer/235137938