Pytorch(一)为什么是pytorch

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/real_ilin/article/details/102472223

各种深度学习框架优缺点

常见的深度学习框架

  • Theano

    2008年开始开发,是第一个有较大影响力的python深度学习框架,但是现在已经停止开发。

  • TensorFlow

    2015年11月由Google推出的全新的机器学习开源工具。Tensorflow在很大程度上可以看作Theano的后继者,不仅因为有很大一批相同的开发者,也有相近的设计理念。都是基于计算图的实现自动微分系统。TensorFlow 使用数据流图进行数值计算,图中的节点代表数学运算,而图中的边则代表在这些节点之间传递的多维数组。

    缺点:

    • 过于复杂的系统设计
    • 频繁变动的接口
    • 接口设计过于晦涩难懂
    • 文档混乱

    但是是最流行的深度学习框架,社区强大,适合生产环境。

  • Keras

    是一个高层神经网络API,由纯Python编写而成并使用Tensorflow、Theano及CNTK作为后端。Keras并不能称为一个深度学习框架,它更像一个深度学习接口,构建于第三方框架之上。为支持快速实验而生,入门简单,可以极大的减少工作量。

    缺点:

    • 不够灵活,使用受限
  • Caffe/Caffe2

    文档不够完善,但是性能优异,几乎全平台支持,适合生产环境

  • MXNet

    开发者李沐,分布式强大、语言支持多,适合AWS云平台使用,但是文档混乱。

  • CNTK

    微软的深度学习框架,但是社区不够活跃,擅长语音方面的研究

  • Pytorch

    基于动态图。几乎所有的框架都是基于计算图的,而计算图可以分为静态计算图和动态计算图。静态计算图是先定义再运行(define and run),一次定义多次运行。而动态计算图是在运行中被定义的,在运行时构建(define by run),可以多次构建多次运行。Tensorflow是基于静态计算图,而pytorch是基于动态计算图。

    pytorch的优点:

    • 设计简洁,tensor->autograd->nn.Module,不像tensorflow中各种session,namesapce等概念。
    • 速度快
    • Pytorch继承了torch的优点,符合人们的思考方式,易用
    • 社区活跃

猜你喜欢

转载自blog.csdn.net/real_ilin/article/details/102472223