新書推薦:
《
台北故宫博物院典藏大系·绘画卷(全十册)
》
售價:HK$
9784.0
《
姑苏繁华图
》
售價:HK$
684.4
《
人的消逝:从原子弹、互联网到人工智能
》
售價:HK$
103.8
《
想象的共同体--民族主义的起源与散布(增订版)
》
售價:HK$
77.3
《
医学图形图像处理基于Python VTK的实现
》
售價:HK$
166.9
《
山家清供:小楷插图珍藏本 谦德国学文库系列
》
售價:HK$
143.4
《
政略与战略论
》
售價:HK$
140.0
《
百年词史-(1900-2000(全二册))
》
售價:HK$
333.8
|
編輯推薦: |
人工智能无疑是近年来热门词汇,而深度学习又是热门中的热门,对于想要进入人工智能行业的您来说,节省时间、快速入门首要问题。再多的知识也要实践,现场实操,才是快速学习、消化的通路。
《PyTorch开发入门:深度学习模型的构建与程序实现》正是这样一本,从基础理论讲起,以实操驱动的方式全面展示技巧和方法,为您提供了快速入门机器学习的途径,找到了学习的方法。
|
內容簡介: |
《PyTorch开发入门:深度学习模型的构建与程序实现》以PyTorch为主要内容,介绍了其安装和实际应用,共7章。其中,第1章介绍了PyTorch的包结构;第2章介绍了线性模型,并通过PyTorch的实际使用来实现线性回归模型和逻辑回归模型;第3章介绍了神经网络,实际使用PyTorch创建一个多层感知器(Perceptron);第4章介绍了通过卷积神经网络(CNN)进行的图像处理,通过PyTorch实际进行CNN的图像分类,低分辨率图像到高分辨率的转换,使用深度卷积生成对抗网络(DCGAN)进行新的图像生成以及迁移学习;第5章介绍了通过循环神经网络(RNN)进行的自然语言处理,通过PyTorch实际进行文本的分类和文本的生成以及基于编码器-解码器模型的机器翻译;第6章介绍了矩阵分解以及推荐系统的神经网络构建;第7章介绍了PyTorch模型的应用程序嵌入,WebAPI的实际创建,Docker的打包发布,以及基于最新开放神经网络交换(ONNX)标准的模型移植。
|
目錄:
|
目 录
译者序
原书前言
阅读本书需要的知识基础
本书的构成
关于本书样例和样例程序的运行环境
第0 章 开发环境的准备 001
0.1 本书的验证环境 002
0.1.1 OS 环境:Ubuntu 16.04 002
0.1.2 NVIDIA 公司的GPU 002
0.1.3 在云端启动GPU 配置的实例 003
0.2 开发环境的构建 004
0.2.1 Miniconda 的安装 004
0.2.2 虚拟环境的构建 007
第1 章 PyTorch 基础 011
1.1 PyTorch 的构成 012
1.1.1 PyTorch 整体情况 012
1.2 Tensor 013
1.2.1 Tensor 的生成和转换 013
1.2.2 Tensor 的索引操作 014
1.2.3 Tensor 的运算 015
1.3 Tensor 和自动微分 020
1.4 本章小结 022
第2 章 极大似然估计与线性模型 023
2.1 随机模型和极大似然估计 024
2.2 随机梯度下降法 026
2.3 线性回归模型 027
2.3.1 线性回归模型的极大似然估计 027
2.3.2 PyTorch中的线性回归模型(from scratch) 028
2.3.3 PyTorch中的线性回归模型(nn、optim 模块的应用) 030
2.4 logistic回归 033
2.4.1 logistic回归的极大似然估计 033
2.4.2 PyTorch中的logistic 回归 034
2.4.3 多元logistic回归 036
2.5 本章小结 039
第3 章 多层感知器 041
3.1 MLP 的构建与学习 042
3.2 Dataset 与DataLoader 046
3.3 高效学习的提示 048
3.3.1 基于Dropout 的正则化 048
3.3.2 通过Batch Normalization 进行学习的加速 051
3.4 网络模块化 053
3.4.1 自有网络层(自定义层)的创建 053
3.5 本章小结 055
第4 章 图像处理和卷积神经网络 057
4.1 图像的卷积计算 058
4.2 基于CNN 的图像分类 059
4.2.1 Fashion-MNIST 059
4.2.2 CNN 的构建与学习训练 061
4.3 迁移学习 066
4.3.1 数据准备 068
4.3.2 通过PyTorch 进行迁移学习 070
4.4 通过CNN 回归模型提高图像分辨率 076
4.4.1 数据准备 076
4.4.2 模型的创建 078
4.5 基于DCGAN 的图像生成 084
4.5.1 什么是GAN 084
4.5.2 数据准备 084
4.5.3 基于PyTorch 的DCGAN 086
4.6 本章小结 094
第5 章 自然语言处理与循环神经网络 095
5.1 RNN 096
5.2 文本数据的数值化 097
5.3 RNN 与文本的分类 099
5.3.1 IMDb 评论数据集 099
5.3.2 网络的定义和训练 103
5.3.3 可变长度序列的处理 108
5.4 RNN 的文本生成 111
5.4.1 数据准备 111
5.4.2 模型的定义和学习 114
5.5 基于编码器 - 解码器模型的机器翻译 119
5.5.1 编码器- 解码器模型 119
5.5.2 数据准备 120
5.5.3 基于PyTorch 的编码器- 解码器模型 124
5.6 本章小结 131
第6 章 推荐系统和矩阵分解 133
6.1 矩阵分解 134
6.1.1 理论背景 134
6.1.2 MovieLens 数据集 135
6.1.3 PyTorch 中的矩阵分解 136
6.2 基于神经网络的矩阵分解 141
6.2.1 非线性矩阵分解 141
6.2.2 附加信息的使用 142
6.3 本章小结 149
第7 章 应用程序中的嵌入 151
7.1 模型的保存和读取 152
7.2 使用Flask 的WebAPI 154
7.3 利用Docker 进行调试 162
7.3.1 nvidia-docker 的安装 162
7.3.2 PyTorch Docker 映像的创建 163
7.3.3 WebAPI 的部署 165
7.4 与使用ONNX 的其他框架的协作 168
7.4.1 什么是ONNX 168
7.4.2 PyTorch 模型的导出 169
7.4.3 Caffe2 中ONNX 模型的使用 170
7.4.4 将ONNX 模型另存为Caffe2 模型 172
7.5 本章小结 174
附录
附录A 训练过程的可视化 175
A.1 通过TensorBoard 进行的可视化 176
附录B Colaboratory 下PyTorch 开发环境的构建 181
B.1 Colaboratory 下PyTorch 开发环境的构建方法 182
B.1.1 什么是Colaboratory 182
B.1.2 机器的配置 182
B.1.3 PyTorch 环境的构建 182
B.1.4 PyTorch 的安装 189
B.1.5 数据的获取 190
|
內容試閱:
|
原书前言
深度学习(Deep Learning)和神经网络是机器学习,特别是计算机视觉(Computer Vision,CV)和自然语言处理(Natural Language Processing,NLP)、语音识别等应用领域热门的话题。我敢肯定,即使不在IT 领域,也有许多读者都听说过这些术语。特别是近年来,它已与AI(人工智能)等关键词关联在一起,尽管有点夸张,但它的热度似乎正在迅速增加。
当我对深度学习和神经网络感兴趣并想亲自尝试时,感到自己与那些夸张的图像和充满实际数学公式的世界之间存在着巨大的鸿沟,一时不知道该从哪里下手。这样的情形,我认为有很多人也不知道该怎么办。
本书从作为神经网络基础的线性模型开始,介绍和学习包括神经网络在内的随机模型的基本原理。其次使用PyTorch,自己动手进行了一个实际程序的创建,以加深对基本原理的理解。
除了线性模型这个非常重要的基础部分以外,全书力图不使用过多的数学公式,而是尝试使用直观的示例进行解释。以简单的数字识别、图像分类、文本分类与生成、翻译和推荐为例,通过各种应用程序来了解数据的使用及其发生的实际变化。关于这一点,我正是通过各种具体的设计,来使你感受到。
本书使用PyTorch这一Python框架。Python是一种编程语言,长期以来一直是数据科学领域中使用多的语言,深度学习也是如此。
作为深度学习的Python程序库,TensorFlow是主要由Google公司开发的框架,是著名的深度学习Python库。但也有一种观点认为,初学者很难适应其大量使用符号的编程风格。另一方面,PyTorch是一个主要由Facebook公司开发的开源项目,它采用一种称为动态网络的机制,可以像普通的Python程序一样轻松地进行神经网络的构建,因此也得到了广泛的支持和迅速的推广。特别是由于广大研究人员的强力支持,使得的研究成果立即在PyTorch中实施并在GitHub上发布已变得司空见惯。尽管日语信息的应用很少,但是PyTorch简单易用,的研究成果可以立即使用,因此对于那些想要学习深度学习并将其作为职业技能的人来说,这是一个的框架。
我希望读者通过本书的学习,能够对神经网络、深度学习或机器学习产生兴趣,并可以在自己的工作中真正使用这些技术。
杜世桥
2018 年9月
阅读本书需要的知识基础:
本书面向对神经网络和深度学习了解不多,但“感兴趣并想知道自己可以使用的东西”和“想真正地自己动手”的读者。在阅读本书时,假定读者具有以下的知识基础。
● 基本的Linux的操作
● 基本的Python程序设计经验
● 函数和微分、向量和矩阵乘法等初等数学知识
●(好具有)NumPy的使用经验
●(好具有)在云上创建虚拟机的经验
可以在以下网站上找到PyTorch(参见要点提示)的官方网站、教程和文档。通过网站提供的文档能够获取和确认本书中出现的PyTorch 功能的详细参数和配置。另外,通过阅读网站提供的教程能够更好地加深对本书的理解,因此无论如何也请通览一下。
● PyTorch 官方网站
网址http://pytorch.org/
● PyTorch 教程
网址http://pytorch.org/tutorials/
● PyTorch 文档
网址http://pytorch.org/docs/
要点提示:PyTorch
在深度学习开始普及的早期,有一个名为Torch的框架可以通过Lua(一种脚本语言)来使用。PyTorch所使用的后端(back-end)代码与该Torch框架的代码完全相同,但是如果你实际上没有接触过Torch,那也完全没有问题。
INTRODUCTION本书的构成
本书可以分为上半部分(第1~3章)和下半部分(第4~7章)。
在第1 章中,我们将概述PyTorch 的包结构,大致了解其组成内容,并实际接触PyTorch基本的数据结构Tensor。
第2章介绍线性模型。学习线性模型的结构非常重要,因为它可以以完全相同的方式用于神经网络。这是本书中含有使用数学公式解释该理论的内容。在下半部分中,我们通过PyTorch的实际使用来实现线性回归模型和逻辑回归模型,并根据实际数据来进行模型的训练和参数的学习。
在第3章中,将进行神经网络的介绍。在这里,我们将实际使用PyTorch创建一个多层感知器(Perceptron),这也是一个基本的神经网络。在第2 章和第3 章中学到的知识将成为接下来的第4 章、第5 章和第6 章的学习基础。
第4章介绍使用卷积神经网络(Convolutional Neural Network,CNN)进行的图像处理。在此我们将创建一个程序,该程序不仅可以使用CNN对简单图像进行分类,还可以将低分辨率图像转换为高分辨率图像,或者使用深度卷积生成对抗网络(Deep Convolutional Generative Adversarial Network,DCGAN)来进行新的图像的生成。除此之外,我们还将展示如何将预先在不同数据集(data set)中训练过的模型很好地转移到自己的数据集上,也就是我们所说的迁移学习。
第5章介绍使用循环神经网络(Recurrent Neural Network,RNN)进行的自然语言处理。除了使用RNN进行文本的分类和文本的生成之外,我们还将使用结合了两个RNN的编码器- 解码器模型挑战英语和西班牙语的翻译。
第6章介绍使用神经网络构建推荐系统(Recommendati
|
|