热度直逼TensorFlow的深度学习框架,我用它画下女朋友最美的脸

这不,又一个程序员为爱变身灵魂画手,看得我都想学画画了。

640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg

阿华是幸运的,因为他找到了对的方法,事半功倍,最终有情人终成眷属。这也得益于 PyTorch易学易用,大多数人第一次使用 PyTorch 几乎可以做到无痛上手。就连深度学习三巨头之一,图灵奖得主 Yann LeCun 都在 Twitter 上为 PyTorch 背书。

640?wx_fmt=png
从 2017 年 1 月 Facebook 公司开源 PyTorch 以来,短短两年时间,PyTorch 便与老牌框架 TensorFlow 势均力敌,成为开源社区仅次于它的深度学习框架。随着越来越多的公司用 PyTorch 进行算法开发,想深入了解它的人变得多起来。
其实 PyTorch 拥有丰富且全面的开发文档,多数人可以通过文档实现完美自学,但是如果希望能够系统学习,免得修炼路上走火入魔的,那阿华获得的这本秘笈也同样适合你。究竟是怎样的秘笈呢?咱们可以小小打探一下。

这秘笈可以说架构非常清晰,分为基础篇、实战篇和高级篇。针对入门 PyTorch 的读者来说,这样的设定是一个最佳的学习路线,真正实现从入门到进阶,而不是从入门到失踪。(得意.JPG)

基础篇


640?wx_fmt=png

工欲善其亊,必先利其器。为了满足深度学习任务中“高计算量”这一特殊需求,在基础篇里,作者便从硬件的选择讲起,教你如何配置一台合适的计算机,以及如何在 Mac OS X、Ubuntu 和 Windows 系统下配置 PyTorch 的运行环境。配置完毕后,万事俱备,PyTorch 的学习就要正式开始啦!

我们曾接触过一些其他的深度学习框架,它们大多会涉及一个基本概念,就是 Tensor。何为 Tensor 呢?中文叫作张量,它是 PyTorch 中最基本的数据类型。

Tensor 之于 PyTorch,就好比 Array 之于 NumPy。零维张量就是数字或者标量,一维张量就是向量,二维或者更高维就是矩阵。不管是自然语言处理还是图片处理,都需要把输入信息转化为高维数字矩阵的形式,张量可以说起到了很大的作用。
640?wx_fmt=png

(张量设计图)

除了张量外,作者还介绍了自动微分(Autograd),它是 PyTorch 进行神经网络优化的核心。让 PyTorch 自动为我们计算微分,这样你在构建自己的函数用于 backward 时,就无需再手动求导了。

基础篇还介绍了一些深度学习的基础知识,这里有你熟悉的线性回归、非线性回归以及逻辑回归。多元分类、反向传播、卷积神经网络等也有涉及。还有两个实现手写体自动识别器的操作给你练手。

实战篇


640?wx_fmt=png
实战篇介绍了一些实际的操作方法。假如,我们想做一个小猫识别系统,但是只拥有少量的“小猫标注图片数据”和大量的“小狗标注图片数据”。要怎么办?
你可以先利用大量的小狗图片对卷积神经网络进行训练。由于猫和狗非常相似,所以只要拿少量的小猫图片对该卷积神经网络的全连接层行微调,就可以得到一个非常好用的小猫识别系统。是不是很腻害。
640?wx_fmt=png

早在 2014 年,Goodfellow 就提出了生成对抗网络。2016 年起,关于生成对抗网络的论文数量呈指数型增长。有热心人士就在 GitHub 上列出了所有生成对抗网络模型的变体,取名为“生成对抗网络的动物园”(The GAN Zoo)。目前该“动物园”一共列出了 503 种不同的生成对抗网络模型及其变体。

640?wx_fmt=png

(生成对抗网络论文发表数量统计)

我们可以用生成对抗网络做一些有趣的、接近真实的东西,比如让机器自己产生一幅画、一段文字,或者让机器根据我们的输入条件生成一些东西,可以输入一张图片后输出一段文字描述,或者是输入一段男性的录音后输出一段女性的录音等。

比如,生成一张二次元的头像送给男/女朋友。不过具体步骤就等你自己去探秘啦。以下这些是我帮你收集好的小姐姐们,喜欢的话,拿去用!

640?wx_fmt=png

不喜欢二次元?没关系!卷积神经网络还可以将一张图片的风格迁移到另外一张图片上,这样我就可以拥有梵高的《星月夜》了~

640?wx_fmt=png

Boom!

640?wx_fmt=png

突然感觉有点赞呢!

除此之外,实战篇还介绍了深度强化模型,以及序列转序列模型。通过序列转序列模型,作者利用 PyTorch 构造了一个神经翻译机,即将神经网络运用在文本翻译中。

因为一般的神经翻译机用的都是序列转序列(seq2seq)模型,神经翻译机会比以前非神经网络的传统算法的准确率高很多。相信会了这个之后,机器翻译再也不是用来搞笑的了。

640?wx_fmt=jpeg

(截图来自:谷歌翻译)

高级篇


640?wx_fmt=png

掌握前两篇的内容之后,作者开始介绍一些 PyTorch 的高级用法。当然,这部分有人需要,有人还需持续修炼之后才会需要。不管怎么样,能学到这里的人,都应该给自己点奖励。

这部分作者分别从四个方面说起,分别是:PyTorch 扩展、PyTorch 模型迁移、Pytorch 可视化以及 Pytorch 的并行计算。

PyTorch 扩展中,作者除了介绍两种神经网络的自定义方法外,还介绍了如何将 PyTorch 模型部署到 C++ 环境下以满足在生产环境下,程序需要高性能、低延迟的要求。

PyTorch 模型迁移这部分中,作者讲解了如何使用 ONNX 将 PyTorch 模型迁移至 Caffe2,以及迁移至 Core ML。

(ONNX 即开放式神经网络交换,是早前微软和 Facebook 为了解决各种深度学习框架之间的模型迁移问题,共同发布的一个解决方案。如今,PyTorch、Caffe2、Microsoft Cognitive Toolkit 及 MXNet 等框架已经可以支持 ONNX,而 TensorFlow、Core ML 等其他框架虽然还没有官方支持 ONNX,但 ONNX 为它们提供了相应的转换器。)
640?wx_fmt=png

(ONNX 生态圈)

PyTorch 可视化这部分,教你通过使用 Tensorboard 和 Visdom 实现对 PyTorch 的可视化。同时还介绍了一个通用的神经网络可视化工具 Netron。

640?wx_fmt=png

(visdom 的数据可视化结果)

为了提高训练模型的效率,在实际生产和运用中大部分人都会采用多个 GPU 并行的方式对模型进行训练。PyTorch 则为我们提供了方便的函数,可以自如地创建多个进程或者同时使用多个 GPU 训练模型。最后这部分主要介绍的就是如何将 PyTorch 在多进程、多 CPU 下进行运算。

640?wx_fmt=png

(多 GPU 训练示意图)

以上呢,就是阿华这本秘笈的主要内容。通篇看下来,作者真的非常了解正在入门 PyTorch 的小伙伴们的痛苦和需求,所以他选择了更适合初学者的思路与讲解方式,基本上是手把手在教了。

而且书中也不乏一些高级技能为已经入门的小伙伴做好进阶的准备。全书 233 页,读起来没啥压力。如果你愿意一步步跟着操作,那么,你会对 PyTorch 有一个全新的认识。

640?wx_fmt=jpeg

从零到一

真正实现 PyTorch 深度学习入门

640?wx_fmt=png
(扫一扫,抱回家)
《PyTorch深度学习入门》

作者:曾芃壹

本书用浅显易懂的语言,图文并貌地讲解了深度学习的基础知识,从如何挑选硬件到神经网络的初步搭建,再到实现图片识别、文本翻译、强化学习、生成对抗网络等多个目前最流行的深度学习应用。书中基于目前流行的 PyTorch 框架,运用 Python 语言实现了各种深度学习的应用程序,让理论和实践紧密结合。 

如此具有吸引力的图书,究竟出自何人之手,容我介绍下这位高颜值学霸曾芃壹老师。他在简书上有多篇 PyTorch 文章,阅读量 10万+,深受读者喜爱。
作者简介

640?wx_fmt=jpeg

曾芃壹,现为中山大学数据科学与计算机学院在读硕士,主要研究兴趣有深度学习、语音识别、推荐系统、自动犯罪侦查等。熟悉 C、C++、Java、Python 等多种程序设计语言,Flask 建站技术以及 PyTorch、TensorFlow 深度学习框架。

作者简书地址:
http://www.jianshu.com/u/5e2b32ff79
专业书评

目前 PyTorch 发展迅猛,已经成为众多研究人员和开发者的深度学习首选框架。本书涵盖了深度学习的基础理论、多个不同应用场景的实战及生产环境下的一些技巧,理论与实战相结合,深入浅出,是深度学习初学者的不错选择。

—— 张海超,NLP 算法工程师

学习的意义在于学以致用,这是一本贴近实战、简单易懂的深度学习入门书,如果你想快速入门深度学习,应该从本书开始。

—— 赵丹,腾讯高级工程师

机器学习作为时下比较热门的技术之一,已经被广泛运用于各个领域。这本书不仅系统讲解了机器学习框架 PyTorch 的用法,还介绍了一些常用机器学习算法的原理,文字简练清晰,代码浅显易懂,几乎可以做到“开箱即用”。无论你只是想简单了解机器学习还是想深入学习 PyTorch,这本书都非常值得阅读。

—— 邹方达,Web 前端工程师
怎么样心动不?为了未来的男/女朋友,这项技能,我可学定喽!

●●●

文末畅聊

小伙伴留言聊聊你用过的那些框架们(深度学习的、非深度学习的都可),用着感觉可还行?也可以说说自己最喜欢的框架,它的哪些优点打动了你。精选留言选出 5 位获得《PyTorch深度学习入门》一本,活动截至2019.10.18。

推荐阅读:

☟ 一键试读
发布了527 篇原创文章 · 获赞 898 · 访问量 214万+
展开阅读全文

没有更多推荐了,返回首页

分享到微信朋友圈

×

扫一扫,手机浏览