一、简介
这里主要介绍深度学习中使用得比较多的三个框架,他们分别是Tensorflow, Pytorch和PaddlePaddle.
为什么使用深度学习框架,因为在这些框架上开发和使用神经网络模型都非常快速和方便,有很多关于深度学习核心算法的API可以直接调用。而且不需要编写底层的代码去调度GPU。就像是搭积木一样的去创建自己的神经网络模型。也可以直接调用现有的神经网络模型,只需简单的代码即可读取模型,训练模型,使用模型进行推理。
在这三个框架上,都使用Python语言来编写深度学习的神经网络,所以还需要熟悉Python语言。
二、Tensorflow
Tensorflow是谷歌创建的框架,于2015年11月发布,支持Python和C++,2017年之前处于深度学习框架的领先地位。但现在好像没有Pytorch那么受欢迎。目前在工业级领域还是处于领先地位,而在学术方面的使用则比不上Pytorch。
优点:
- 跨平台运行能力强,支持多GPU,分布式训练。
- 具备不局限于深度学习的多种用途,还有支持强化学习和其他算法的工具。
- 集成了更高层的API封装:Keras,方便初学者快速入门。
- 有最大的社区服务。
- 提供数据可视化的工具TensorBoard。
缺点:
- 接口名变动频繁:Tensorflow的接口在快速迭代过程中没有很好地考虑向后兼容,比如1.0版本很多接口在2.0中不兼容,需要编写繁杂的程序来额外兼容。而且在1.0写的许多开源代码无法在2.0中运行。这也间接导致了许多基于Tensorflow的第三方框架出现BUG。
- 框架的设计比较复杂,在TensorFlow 1.0中,创造了图、会话、命名空间、PlaceHolder等诸多抽象概念,对初学者来说较难上手。但在2.0里得到了改善。
- 计算速度相对比较慢。
三、Pytorch
PyTorch是Facebook提供支持的框架,于2017年1月发布,支持Python和C