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