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

相关文章
相关标签/搜索