漫画:我用深度学习框架画下女朋友最美的脸

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












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

工欲善其亊,必先利其器。为了满足深度学习任务中“高计算量”这一特殊需求,在基础篇里,作者便从硬件的选择讲起,教你如何配置一台合适的计算机,以及如何在 Mac OS X、Ubuntu 和 Windows 系统下配置 PyTorch 的运行环境。配置完毕后,万事俱备,PyTorch 的学习就要正式开始啦!
我们曾接触过一些其他的深度学习框架,它们大多会涉及一个基本概念,就是 Tensor。何为 Tensor 呢?中文叫作张量,它是 PyTorch 中最基本的数据类型。

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


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

(生成对抗网络论文发表数量统计)
比如,生成一张二次元的头像送给男/女朋友。不过具体步骤就等你自己去探秘啦。以下这些是我帮你收集好的小姐姐们,喜欢的话,拿去用!
不喜欢二次元?没关系!卷积神经网络还可以将一张图片的风格迁移到另外一张图片上,这样我就可以拥有梵高的《星月夜》了~
突然感觉有点赞呢!
除此之外,实战篇还介绍了深度强化模型,以及序列转序列模型。通过序列转序列模型,作者利用 PyTorch 构造了一个神经翻译机,即将神经网络运用在文本翻译中。
因为一般的神经翻译机用的都是序列转序列(seq2seq)模型,神经翻译机会比以前非神经网络的传统算法的准确率高很多。相信会了这个之后,机器翻译再也不是用来搞笑的了。

(截图来自:谷歌翻译)
高级篇
掌握前两篇的内容之后,作者开始介绍一些 PyTorch 的高级用法。当然,这部分有人需要,有人还需持续修炼之后才会需要。不管怎么样,能学到这里的人,都应该给自己点奖励。
这部分作者分别从四个方面说起,分别是:PyTorch 扩展、PyTorch 模型迁移、Pytorch 可视化以及 Pytorch 的并行计算。
在 PyTorch 扩展中,作者除了介绍两种神经网络的自定义方法外,还介绍了如何将 PyTorch 模型部署到 C++ 环境下以满足在生产环境下,程序需要高性能、低延迟的要求。
在 PyTorch 模型迁移这部分中,作者讲解了如何使用 ONNX 将 PyTorch 模型迁移至 Caffe2,以及迁移至 Core ML。

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

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

(多 GPU 训练示意图)
以上呢,就是阿华这本秘笈的主要内容。通篇看下来,作者真的非常了解正在入门 PyTorch 的小伙伴们的痛苦和需求,所以他选择了更适合初学者的思路与讲解方式,基本上是手把手在教了。
而且书中也不乏一些高级技能为已经入门的小伙伴做好进阶的准备。全书 233 页,读起来没啥压力。如果你愿意一步步跟着操作,那么,你会对 PyTorch 有一个全新的认识。
☟
真正实现 PyTorch 深度学习入门
作者:曾芃壹
本书用浅显易懂的语言,图文并貌地讲解了深度学习的基础知识,从如何挑选硬件到神经网络的初步搭建,再到实现图片识别、文本翻译、强化学习、生成对抗网络等多个目前最流行的深度学习应用。书中基于目前流行的 PyTorch 框架,运用 Python 语言实现了各种深度学习的应用程序,让理论和实践紧密结合。
曾芃壹,现为中山大学数据科学与计算机学院在读硕士,主要研究兴趣有深度学习、语音识别、推荐系统、自动犯罪侦查等。熟悉 C、C++、Java、Python 等多种程序设计语言,Flask 建站技术以及 PyTorch、TensorFlow 深度学习框架。
目前 PyTorch 发展迅猛,已经成为众多研究人员和开发者的深度学习首选框架。本书涵盖了深度学习的基础理论、多个不同应用场景的实战及生产环境下的一些技巧,理论与实战相结合,深入浅出,是深度学习初学者的不错选择。
学习的意义在于学以致用,这是一本贴近实战、简单易懂的深度学习入门书,如果你想快速入门深度学习,应该从本书开始。
机器学习作为时下比较热门的技术之一,已经被广泛运用于各个领域。这本书不仅系统讲解了机器学习框架 PyTorch 的用法,还介绍了一些常用机器学习算法的原理,文字简练清晰,代码浅显易懂,几乎可以做到“开箱即用”。无论你只是想简单了解机器学习还是想深入学习 PyTorch,这本书都非常值得阅读。


作为码书商店的运营人员,诚邀你们进入我们的“CSDN码书福利群”,进入群后,你想要的书籍都有推荐,你想要的优惠也都可以实现(当然不能让我卖掉我自己),你也可以在学习累的时候和大家吹吹牛放松放松
相关文章:
吴恩达老师深度学习视频课笔记:循环神经网络
Why sequence models?:序列数据例子,如下图:(1).语音识别(speech recognition):给定一个输入音频片段X,并要求输出片段对应的文字记录Y,这里输入和输出都是序列数据(sequence data)。因为X是按时序播放的音…

周伯文对话斯坦福AI实验室负责人:下一个NLP前沿是什么?
出品 | AI科技大本营(ID:rgznai100)10 月 31 日,在北京智源大会上,京东集团副总裁兼人工智能事业部总裁、智源-京东联合实验室主任周伯文,斯坦福人工智能实验室负责人(SAIL)Christopher Manning…

IOS8中SWIFT 弹出框的显示
弹出框不管是在网页端,还是在手机APP端,都是常用的控件.在网页中实现个简单的弹出框只需要调用alert,在IOS中,也不是那么复杂,也是容易使用的. 我先用xcode6创建一个名为iOS8SwiftAlertViewTutorial,设置好相关的信息. 在Storyboard中调整好视图显示方式 拖动一个按钮到主视图…
Maven学习笔记(二) :Maven的安装与配置
在Windows上安装Maven: 1. 首先检查安装JDK通过命令行运行命令:echo %JAVA_HOME%和java -version,能够查看当前java的安装文件夹及java的版本号,maven要求JDK的版本号必须在1.4以上。2. 下载Maven前往maven的下载页面:http://ma…

swift闭包
其实闭包就是函数 作为条件的函数 闭包表达式 首先声明一个数组 <code class"hljs cs has-numbering" style"display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: Source Code Pro, mono…
吴恩达老师深度学习视频课笔记:自然语言处理与词嵌入
Word representation:词嵌入(word embedding),是语言表示的一种方式,可以让算法自动理解一些类似的词比如男人、女人,国王、王后等。通过词嵌入的概念,即使你的模型标记的训练集相对较小,也可以构建NLP(自然…

高文院士:为什么中国的AI发展必须要有开源开放平台?
出品 | AI科技大本营(ID:rgznai100)10 月 31 日,由北京智源人工智能研究院主办的 2019 北京智源大会在国家会议中心开幕,本次大会围绕人工智能基础研究现状及面临的机遇和挑战、人工智能技术未来发展的核心方向等话题,…

libcurl断点下载遇到的问题
最近游戏把资源(图片、配置、lua)的加载、更新全部改了 ,加载其实还好,就是不走之前的zip解压方式。 以前的大体流程: 下载 –> 启动 –> 解压 –> 更新 –> 进入游戏 现在的大体流程: 下载 –…

sqlite3数据的使用(xcode 7,ios9)
由于考虑将来还要开发Android版本app,为了移植方便,所以使用了sqlite3来做数据持久化,到时候把sql语句拷过去还能用。 1、 首先用xcode载入sqlite3类库 选择工程的TARGETS-build phases-link binary with libraries,点击“”按钮&…
吴恩达老师深度学习视频课笔记:序列模型和注意力机制
基础模型:比如你想通过输入一个法语句子来将它翻译成一个英语句子,如下图,seq2seq模型,用x<1>一直到x<5>来表示输入句子的单词,然后我们用y<1>到y<6>来表示输出的句子的单词,如何训…

七个开发者成就百亿市值公司?这个技术思路如今让阿里发扬光大
2015年,马云带领阿里巴巴集团的高管拜访了位于芬兰游戏公司supercell 这家公司开发出了《部落战争》、《皇室战争》、《海岛奇兵》等App端知名游戏图片来自多玩BBS社区但是,这么知名的游戏公司开发团队当时却不足7人!整个团队好像cell一样&am…

Linux学习笔记之文件管理和目录管理类命令
在开始理解Linux文件管理和目录类命令之前,有必要先说一下,关于操作系统在计算机中都做了哪些工作。0、操作系统的工作1、文件管理,增删改查2、目录管理3、进程管理4、软件安装5、运行程序6、网络管理7、设备管理本次笔记介绍的是文件管理和目…

张钹、朱松纯、黄铁军等同台激辩:人工智能的“能”与“不能”
整理 | AI科技大本营编辑部出品 | AI科技大本营(ID:rgznai100)10 月 31 日,由北京智源人工智能研究院主办的 2019 北京智源大会在国家会议中心开幕,本次大会吸引了国际人工智能领域的顶级专家学者参加,围绕人工智能基础…

ssqlit3.0数据库使用方法
由于考虑将来还要开发Android版本app,为了移植方便,所以使用了sqlite3来做数据持久化,到时候把sql语句拷过去还能用。 1、 首先用xcode载入sqlite3类库 选择工程的TARGETS-build phases-link binary with libraries,点击“”按钮&…
GCC中通过--wrap选项使用包装函数
在使用GCC编译器时,如果不想工程使用系统的库函数,例如在自己的工程中可以根据选项来控制是否使用系统中提供的malloc/free, new/delete函数,可以有两种方法: (1). 使用LD_PRELOAD环境变量:可以设置共享库的路径&…

[原]对Linux环境下任务调度一点认识
我一直以来有一个误解,那就是在终端运行某个程序时,按下Ctrl D时我误以为就是杀死了这个进程,今天才知道原来不是。比如我利用libevent在Linux环境下写了一个网络监听程序,当启动程序之后,就会一直监听本地的6789端口…
决策树的C++实现(CART)
关于决策树的介绍可以参考: https://blog.csdn.net/fengbingchun/article/details/78880934 CART算法的决策树的Python实现可以参考: https://blog.csdn.net/fengbingchun/article/details/78881143 这里参考 https://machinelearningmastery.com/impl…

iOS开发-由浅至深学习block
作者:Sindri的小巢(简书) 关于block 在iOS 4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调。这不免让我们想到在C函数中,我们可以定义一个指向函数…

Google和微软分别提出分布式深度学习训练新框架:GPipe PipeDream
【进群了解最新免费公开课、技术沙龙信息】作者 | Jesus Rodriguez译者 | 陆离编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导读】微软和谷歌一直在致力于开发新的用于训练深度神经网络的模型,最近,谷歌和微软分别…

fragment 横竖屏 不重建
2019独角兽企业重金招聘Python工程师标准>>> android:configChanges"screenSize|orientation" 这样设置 切屏时都不会重新调用fragment里面的onCreateView了 转载于:https://my.oschina.net/u/1777508/blog/317811
二叉树简介及C++实现
二叉树是每个结点最多有两个子树的树结构,即结点的度最大为2。通常子树被称作”左子树”和”右子树”。二叉树是一个连通的无环图。 二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:(1)、空二叉树…

swift实现ios类似微信输入框跟随键盘弹出的效果
为什么要做这个效果 在聊天app,例如微信中,你会注意到一个效果,就是在你点击输入框时输入框会跟随键盘一起向上弹出,当你点击其他地方时,输入框又会跟随键盘一起向下收回,二者完全无缝连接,那么…

行人被遮挡问题怎么破?百度提出PGFA新方法,发布Occluded-DukeMTMC大型数据集 | ICCV 2019...
作者 | Jiaxu Miao、Yu Wu、Ping Liu、Yuhang Ding、Yi Yang译者 | 刘畅编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导语】在以人搜人的场景中,行人会经常被各种物体遮挡。之前的行人再识别(re-id)方法…

WinAPI: Arc - 绘制弧线
为什么80%的码农都做不了架构师?>>> //声明: Arc(DC: HDC; {设备环境句柄}X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer {四个坐标点} ): BOOL;//举例: procedure TForm1.FormPaint(Sender: TObject); constx1 10;y1 10;…

提高C++性能的编程技术笔记:跟踪实例+测试代码
当提高性能时,我们必须记住以下几点: (1). 内存不是无限大的。虚拟内存系统使得内存看起来是无限的,而事实上并非如此。 (2). 内存访问开销不是均衡的。对缓存、主内存和磁盘的访问开销不在同一个数量级之上。 (3). 我们的程序没有专用的CPUÿ…

2019年不可错过的45个AI开源工具,你想要的都在这里
整理 | Jane 出品 | AI科技大本营(ID:rgznai100)一个好工具,能提高开发效率,优化项目研发过程,无论是企业还是开发者个人都在寻求适合自己的开发工具。但是,选择正确的工具并不容易,有时这甚至是…

swift中delegate与block的反向传值
swift.jpg入门级 此处只简单举例并不深究,深究我也深究不来。对于初学者来说delegate或block都不是一下子能理解的,所以我的建议和体会就是,理不理解咱先不说,我先把这个格式记住,对就是格式,delegate或blo…

Direct2D (15) : 剪辑
为什么80%的码农都做不了架构师?>>> 绘制在 RenderTarget.PushAxisAlignedClip() 与 RenderTarget.PopAxisAlignedClip() 之间的内容将被指定的矩形剪辑。 uses Direct2D, D2D1;procedure TForm1.FormPaint(Sender: TObject); varcvs: TDirect2DCanvas;…

女朋友啥时候怒了?Keras识别面部表情挽救你的膝盖
作者 | 叶圣出品 | AI科技大本营(ID:rgznai100)【导读】随着计算机和AI新技术及其涉及自然科学的飞速发展,整个社会上的管理系统高度大大提升,人们对类似人与人之间的交流日渐疲劳而希望有机器的理解。计算机系统和机械人如果需要…

提高C++性能的编程技术笔记:构造函数和析构函数+测试代码
对象的创建和销毁往往会造成性能的损失。在继承层次中,对象的创建将引起其先辈的创建。对象的销毁也是如此。其次,对象相关的开销与对象本身的派生链的长度和复杂性相关。所创建的对象(以及其后销毁的对象)的数量与派生的复杂度成正比。 并不是说继承根…