1.1.3. 深度学习框架Pytorch#

深度学习框架能够让使用者更快速地构建深度学习模型,目前有众多深度学习框架用于学习研究。PyTorch是Facebook团队于2017年初发布的一套深度学习开源框架,虽然晚于TensorFlow等框架,但自发布之日起,其关注度就在不断上升,是当今深度学习领域中最热门的框架之一,其简洁且高效快速的框架设计、符合人类思维习惯的设计方式等特点使其非常适合研究学习及实验。

相比于其他框架,PyTorch有如下特点:

  • 灵活强大的接口

包括eager execution和graph execution模式之间无缝转换的混合前端、改进的分布式训练、用于高性能研究的纯C++前端,以及与云平台的深度集成。

  • 丰富的课程资源

Udacity和Facebook已经上线了一门新课程(Introduce to Deep Learning with PyTorch)并推出了PyTorch挑战赛(PyTorch Challenge Program),PyTorch的相关完整课程可在Udacity网站上免费获取。除在线教育课程之外,fast.AI等组织还提供软件库,支持开发者使用PyTorch构建神经网络。

  • 更多的项目扩展

基于PyTorch开发的典型拓展有:

  1. Horovod:分布式训练框架,使开发人员能够轻松地使用单个GPU程序,并快速在多个GPU上训练。

  2. PyTorch Geometry:PyTorch的几何计算机视觉库,提供一组路径和可区分的模块。

  3. TensorBoardX:一个将PyTorch模型记录到TensorBoard的模块,允许开发者使用可视化工具训练模型。

此外,Facebook内部团队还构建并开源了多个PyTorch项目,如Translate(用于训练基于Facebook机器翻译系统的序列到序列模型的库)。

  • 支持更多的云平台

为了使PyTorch更加易于获取且对用户友好,PyTorch团队继续深化与云平台和云服务的合作,如AWS、谷歌云平台、微软Azure,开发者可以在此类云平台上训练、管理和部署PyTorch模型。

PyTorch可用于构建深度神经网络和执行张量计算,其主要的功能有:拥有GPU张量,该张量可以通过GPU加速,达到在短时间内处理大数据的要求;支持动态神经网络,可逐层对神经网络进行修改,并且神经网络具备自动求导的功能。本书后续内容均是基于PyTorch框架实现。