深度学习--深度学习框架对比

框架 简介 优点 缺点 点评
Theano 2008年诞生于LISA实验室,其设计具有较浓厚的学术气息。 作为第一个Python深度学习框架,Theano很好的完成了自己的使命,为之后深度学习框架的开发奠定了基本设计方向: 以计算图为框架的核心,采用GPU加速计算 (1) Python+NumPy的组合;(2) 使用计算图;(3) 学习门槛低 (1) 比Torch臃肿;(2) 不支持分布式;(3) 大模型的编译时间有时要很久,调试困难;(4) 目前已停止开发 (5)很重的学术气息,在工程上较大缺陷。 已停止开发,不建议作为研究工具继续开发
TensorFlow 2015年诞生于Google,可以看作是Theano的后继者,与Theano有很相似的设计理念。TensorFlow作为当前最流行的深度学习框架,它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源 (1) 具有更好的计算图可视化效果;(2) 可扩展性强,能部署在各种服务器和移动设备上;(3) 出色的社区支持;(4) 性能优异 (1) 过于复杂的系统设计,总代码量超过100万行,维护困难;(2) 接口设计复杂,且频繁变动,而且晦涩难懂;(3) 图构造是静态图,必须先被‘编译’再运行 (4)文档混乱脱节 (5)没有统一易用接口 不完美但是是最流行的深度学习框架,社区强大,适合生产环境。
Keras 2015年诞生于Google,是一个用Python编写的高级神经网络 API,它能够以 TensorFlow, CNTK,或者Theano作为后端运行。Keras的开发重点是支持快速的实验 (1) 简单容易上手;(2) 提供规范丰富的文档;(3) 基于Python实现,易调试易扩展;(4) 可使用theano和tensorflow两个backend (1) 缺少灵活性;(2) 运行速度慢 入门简单,但是不够灵活,使用受限
Caffe/Caffe2 Caffe 是2014年诞生于伯克利,核心语言是C++,支持命令行、python和MATLAB接口,可在CPU和GPU上运行。 Caffe2诞生于2017年的Facebook,其沿袭了大量的Caffe设计,是一个兼具表现力、速度和模块性的开源深度学习框架 Caffe (1) 简洁快速,易用性强;(2) 可支持Matlab 和 Python 接口Caffe2:(1) 轻量级扩展性好;(2) 性能优异;(3) 几乎全平台支持 Caffe: (1) 缺少灵活性;(2) 在递归神经网络上表现不佳 Caffe2:(1) 官方未提供完整的文档;(2) 安装复杂,编译过程常出现异常 文档不够完善,但性能优异,几乎全平台支持
MXNet MXNet是一个深度学习库,支持各种常见的语言,其借鉴了Caffe的思想,但实现更干净。2016年,MXNet被AWS正式选择为其云计算的官方深度学习平台 (1) 支持灵活的动态图和高效的静态图,性能优异;(2) 扩展性好,分布式性能强大,可移植性强;(3) 支持多种语言和平台 (1) 入门门槛高;(2) 文档不完善,更新慢;(3) 代码有一些小bug 文档略微混乱 但是分布式性能强大 支持多语言 适合AWS云平台使用
CNTK 2016年诞生于微软,根据开发者描述,CNTK的性能比主流工具都要强。CNTK表现比较均衡,没有明显的短板 (1) 性能出众;(2) 在语音领域效果突出 (1) 社区活跃度不高;(2) 文档比较难懂;(3) 目前不支持ARM架构,限制了其在移动设备上的发挥 社区不够活跃,但是性能突出,擅长语音方面的研究
PyTorch 2017年诞生于Facebook,PyTorch本质上是支持GPU的NumPy替代,配备了可用于构建和训练深度神经网络的更高级的功能。PyTorch是当前难得的简洁优雅高效快速的框架 (1) 简洁,代码易于理解;(2) 速度快,优于TensorFlow和Keras等;(3) 灵活易用;(4) 社区活跃,文档完整 (1) 不支持移动设备部署;(2) 无可视化接口和工具 设计理念:遵循tensor–>variable(autograd)–>nn.module.分别表示张量。自动求导(变量),和神经网络(层/模块),而且三个之间

属于动态图的未来

计算图可以分为静态计算图和动态计算图。静态计算图是先定义后计算,而动态图在运行过程中被定义,在运行时构建,可以多次构建运行。

TF使用的静态计算图,而Pytorch使用的是动态计算图。

静态图一旦创建就不能修改,使用了特殊语法就想学习了新的一门语言。
动态计算图思想直观明了,更符合人的思考过程。打个比方静态图就像C/C++运行之前都需要进行编译,而动态图就像python直接运行,可以交互式查看修改,十分灵活。动态图带来的另一个优势就是调试更容易。

你可能感兴趣的:(深度学习,caffe,python,人工智能,pytorch)