推荐序
深度学习的浪潮已经席卷了各行各业,从一开始被图像识别、自然语言处理这些相关专业领域的学者和技术人员熟悉到围棋领域由Google公司的AlphaGo一举成名,被普罗大众所熟悉也就用了三四年时间。在这之后,深度学习继续在各领域生根发芽并将会继续取得丰硕成果。
要学习深度学习,除了学习深度学习的相关理论知识,还要学习各大框架的使用方法。作为深度学习模型的载体,现在实现深度学习的框架主要有Tensorflow和PyTorch,还有一些其他框架如mxnet、CNTK和Chainer等。而PyTorch自2016年10月首次对外发布以来,仅花了两年时间就可以和Tensorflow分庭抗礼,这与PyTorch的高性能和易用性是分不开的。截止2019年为止,深度学习的主要会议如NIPS、ICCV、CVPR、ICML等都有50%~80%的会议论文使用了PyTorch,这也说明了PyTorch的简明易用、高性能等特点吸引了大量学术界的用户。
现在市面上讲解PyTorch的入门级书已经有了很多,这些书分别从安装、使用和简单示例角度入手讲解PyTorch,其优点是通俗易懂,但还是缺少一些从底层模块角度讲解PyTorch内容的书来帮助读者进一步了解并用好PyTorch。而本书最大的优点就是囊括了PyTorch的常用模块,并给模块配备了不同使用方法的代码和代码背后的底层模块如何实现的逻辑,以便引导用户入门PyTorch后继续探索PyTorch的各种用法,进而提升科研和工作效率。除此以外,本书还囊括了近几年学术界和工业界都很常用的诸多热门模型,如SSD、FCN、GAN、LSTM和BERT等的PyTorch实现,省去了读者去网上搜索相关实现的烦琐。本书最后专门介绍了PyTorch的一些高级使用方法,例如,如何编写算子和自动求导机制,这可以帮助对PyTorch有进一步开发需求的研究者和学习者开发需要的算子。
本书作者张校捷自博士毕业以后一直从事PyTorch相关的工作,相信他在NVIDIA公司的相关工作经验能帮助到广大读者更深入地了解PyTorch,从而学好深度学习。作为他的师兄,鄙人也很荣幸为本书作序。
最后,希望本书的出版能为国内的深度学习社区添砖加瓦,能吸引更多热爱深度学习的人加入到这个领域里。
Intel IAGS软件工程师 石元坤