马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是一个专门对Tensorflow、Pytorch、Keras三个主流DL框架的一个详解和对比分析
一、作甚深度学习框架?
你可以明白为一个工具帮你构建一个深度学习网络,调用里面的各种方法就能自行构建任意层,diy你想要的DNN,而且任意指定学习器和优化器等,非常的方便!
二、Tensorflow
1.发展历史
TensorFlow由Google智能呆板研究部门Google Brain团队研发的;TensorFlow编程接口支持Python和C++。随着1.0版本的公布,相继支持了Java、Go、R和Haskell API的alpha版本。
在2017年,Tensorflow独占鳌头,处于深度学习框架的领先职位;但截至目前已经和Pytorch不争上下。
注意,Tensorflow目前重要在工业级领域处于领先职位。参考至博客(38 封私信 / 16 条消息) 为什么说学术上用pytorch,工业上用tensorflow? - 知乎 (zhihu.com)
但说句真话,这个问题过于宏观,每个人都有自己的观点,最好还是自己现实两者都使用之后,再来说最适合自己的是哪一个吧。(并且tensoeflow和pytorch两者都一直在发展,后期有可能就不分伯仲啦!)
三、Pytorch
Pytorch目前是由Facebook人工智能学院提供支持服务的。
Pytorch目前重要在学术研究方向领域处于领先职位。
其优点在于:PyTorch可以使用强大的GPU加速的Tensor盘算(好比:Numpy的使用)以及可以构建带有autograd的深度神经网络。
同时,PyTorch 的代码很简洁、易于使用、支持盘算过程中的动态图而且内存使用很高效
四、Keras
本来是一个独立的高级API,如今已经成为Tensorflow的一部门
接口简单友爱,使用tensorflow作为后端,适合快速实行和原型开发。
五、区别
重要区别:
- 盘算图:
- TensorFlow使用静态盘算图,需要先定义后运行
- PyTorch使用动态盘算图,更灵活,可以边定义边运行
- 易用性:
- Keras通常被认为是最轻易上手的
- PyTorch的API计划更加直观
- TensorFlow相对复杂一些,但提供更多底层控制
- 性能和摆设:
- TensorFlow在大规模摆设和性能优化方面较为成熟
- PyTorch在研究和实行阶段更受欢迎
- Keras作为高级API,性能可能略低,但开发速率快
- 社区和生态体系:
- TensorFlow拥有最大的社区和最广泛的工具支持
- PyTorch在学术界更受欢迎,增长敏捷
- Keras作为TensorFlow的一部门,也有很好的社区支持
六、总结
- TensorFlow:
- 由Google开发
- 使用静态盘算图
- 广泛应用于生产情况
- 有较为美满的摆设工具
- PyTorch:
- 由Facebook开发
- 使用动态盘算图
- 更加灵活,适合研究和快速原型开发
- 相对更加直观和易于调试
- Keras:
- 最初是一个独立的高级API,现已成为TensorFlow的一部门
- 提供更简单、更用户友爱的接口
- 可以使用TensorFlow或Theano作为后端
- 适合快速实行和原型开发
六、代码实现以及对比(key |