首页 > 科技 > 深度学习框架对比

深度学习框架对比


文章目录

Caffe

Pytorch

TensorFlow

Keras

Caffe

第一个主流产品级深度学习库,于 2014 年由 UC Berkeley 启动

优点:快速、支持 GPU、漂亮的 Matlab 和 Python 接口

缺点:不灵活。在 Caffe 中,每个节点被当做一个层,因此如果你想要一种新的层类型,你需要定义完整的前向、后向和梯度更新过程。这些层是网络的构建模块,你需要在无穷无尽的列表中进行选择。(相反,在 TensorFlow 中,每个节点被当做一个张量运算例如矩阵相加、相乘或卷积。你可以轻易地定义一个层作为这些运算的组合。因此 TensorFlow 的构建模块更小巧,允许更灵活的模块化

Pytorch

2017 年 1 月,Facebook 将 Python 版本的 Torch 库(用 Lua 编写)开源

优点:

  1. 提供动态计算图(意味着图是在运行时生成的),允许你处理可变长度的输入和输出,例如,在使用 RNN 时非常有用,易于编写自己的图层类型
  2. 易于在 GPU 上运行
  3. 大量易于组合的模块化组件

缺点:

  1. 正式文档以外的参考资料 / 资源有限
  2. 正式文档以外的参考资料 / 资源有限

TensorFlow

由较低级别的符号计算库(如 Theano)与较高级别的网络规范库(如 Blocks 和 Lasagne)组合而成

优点:

  1. 由谷歌开发、维护,因此可以保障支持、开发的持续性
  2. 巨大、活跃的社区
  3. 网络训练的低级、高级接口

缺点:

  1. 计算图是纯 Python 的,因此速度较慢
  2. 图构造是静态的,意味着图必须先被「编译」再运行

Keras

Keras 是一个更高级、对用户最友好的 API,具有可配置的后端,由 Google Brain 团队成员 Francis Chollet 编写和维护

优点:

  1. 提供高级 API 来构建深度学习模型,使其易于阅读和使用
  2. 编写规范的文档
  3. 大型、活跃的社区
  4. 位于其他深度学习库(如 Theano 和 TensorFlow,可配置)之上
  5. 使用面向对象的设计,因此所有内容都被视为对象(如网络层、参数、优化器等)。所有模型参数都可以作为对象属性进行访问。

缺点:

  1. 由于用途非常普遍,所以在性能方面比较欠缺
  2. 与 TensorFlow 后端配合使用时会出现性能问题(因为并未针对其进行优化),但与 Theano 后端配合使用时效果良好
  3. 不像 TensorFlow 或 PyTorch 那样灵活


本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/284220.html