深度学习框架PyTorch:入门与实践
  • 推荐3
  • 收藏6
  • 浏览12.1K

深度学习框架PyTorch:入门与实践

陈云 (作者) 

  • 书  号:978-7-121-33077-3
  • 出版日期:2017-12-22
  • 页  数:300
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:郑柳洁
电子书 ¥35.00
购买电子书
纸质版 ¥65.00
书从多维数组Tensor开始,循序渐进地带领读者了解PyTorch各方面的基础知识,并结合基础知识和前沿研究,带领读者从零开始完成几个经典有趣的深度学习小目,包括GAN 生成动漫头像、AI滤镜、AI 写诗等。本书没有简单机械地介绍各个函数接口的使用,而是尝试分门别类、循序渐进地向读者介绍PyTorch的知识,希望读者对PyTorch有一个完整的认识。
本书内容由浅入深,无论是深度学习的初学者,还是第一次接触PyTorch的研究人员,都能在学习本书的过程中快速掌握PyTorch。即使是有一定PyTorch使用经验的用户,也能够从本书中获得对PyTorch 不一样的理解。
媲美TensorFlow的深度学习框架!实战Kaggle竞赛中经典项目、GAN生成动漫头像、AI滤镜、RNN写诗、图像描述任务,附赠源代码文件!
前言
为什么写这本书
2016年是属于TensorFlow的一年,凭借谷歌的大力推广,TensorFlow占据了各大媒体的头条。2017年年初,PyTorch的横空出世吸引了研究人员极大的关注,PyTorch简洁优雅的设计、统一易用的接口、追风逐电的速度和变化无方的灵活性给人留下深刻的印象。
作为一门2017年刚刚发布的深度学习框架,研究人员所能获取的学习资料有限,中文资料更是比较少。笔者长期关注PyTorch发展,经常在论坛上帮助PyTorch新手解决问题,在平时的科研中利用PyTorch进行各个方面的研究,有着丰富的使用经验。看到国内的用户对PyTorch十分感兴趣,迫切需要一本能够全面讲解PyTorch的书籍,于是本书就这么诞生了。
本书的结构
本书分为两部分:第2~5章主要介绍PyTorch的基础知识。
? 第2章介绍PyTorch的安装和配置学习环境。同时以最概要的方式介绍PyTorch的主要内容,让读者对PyTorch有一个大概的整体印象。
? 第3章介绍PyTorch中多维数组Tensor和动态图autograd/Variable的使用,并配以例子,让读者分别使用Tensor和autograd实现线性回归,比较二者的不同点。本章还对Tensor的底层设计,以及autograd的原理进行了分析,给读者以更全面具体的讲解。
? 第4章介绍PyTorch中神经网络模块nn的基础用法,同时讲解了神经网络中的“层”、“损失函数”、“优化器”等,最后带领读者用不到50行的代码搭建出曾夺得ImageNet冠军的ResNet。
? 第5章介绍PyTorch中数据加载、GPU加速和可视化等相关工具。
第6~10章主要介绍实战案例。
? 第6章是承上启下的一章,目标不是教会读者新函数、新知识,而是结合Kaggle中一个经典的比赛,实现一个深度学习中比较简单的图像二分类问题。在实现的过程中,带领读者复习前5章的知识,并提出代码规范以合理地组织程序和代码,使程序更可读、可维护。第6章还介绍在PyTorch中如何进行debug。
? 第7章为读者讲解当前最火爆的生成对抗网络(GAN),带领读者从零开始实现一个动漫头像生成器,能够利用GAN生成风格多变的动漫头像。
? 第8章为读者讲解风格迁移的相关知识,并带领读者实现风格迁移网络,将自己的照片变成“高大上”的名画。
? 第9章为读者讲解一些自然语言处理的基础知识,并讲解CharRNN的原理。然后利用其收集几万首唐诗,训练出一个可以自动写诗歌的小程序。这个小程序可以控制生成诗歌的格式和意境,还能生成藏头诗。
? 第10章为读者介绍图像描述任务,并以最新的AI Challenger比赛的数据为例,带领读者实现一个可以进行简单图像描述的小程序。
第1章和第11章是本书的首章和末章,第1章介绍PyTorch的优势,以及和市面上其他几款框架的对比。第11章是对本书的总结,以及对PyTorch不足之处的思考,同时对读者未来的学习提出建议。
关于代码
本书的所有代码都开源在GitHub【https://github.com/chenyuntc/pytorch-book】上,其中:
? 第2~5章的代码以Jupyter Notebook形式提供,读者可以在自己的计算机上交互式地修改运行它。
? 第6~10章的代码以单独的程序给出,每个函数的作用与细节在代码中有大量的注释。
本书的代码,在最新版的PyTorch 0.2上运行,同时支持Python 2 和Python 3,其中:
? 前5章的代码同时在Python 2.7和Python 3.5上验证,并得到最终结果。
? 第6~10章的代码,主要在Python 2.7上运行并得到最终结果,同时在Python 3.5上测试未报错。
适读人群
学习本书需要读者具备以下基础知识:
? 了解Python的基础语法,掌握基础的Python使用方法。
? 有一定深度学习基础,了解反向传播、卷积神经网络等基础知识,但并不要求深入了解。
? 具备梯度、导数等高中数学基础知识。
以下知识不是必需的,但最好了解:
? numpy的使用。
? 深度学习的基本流程或者其他深度学习框架的使用。
本书不适合哪些读者:
? 没有任何深度学习基础的用户。
? 没有Python基础的用户。
? 只能使用Windows的用户。
本书约定
在本书中,笔者是本书编著者的自称,作者指的是软件、论文等的作者,读者指阅读本书的你。
本书前5章的代码由Jupyter Notebook转换而来,其中:
? In后面跟着的是输入的代码。
? Out是指程序的运行结果,运行结果取决于In的最后一行。
? Print后面跟着程序的打印输出内容,只有在In程序中调用了 print 函数/语句才会有Print输出。
? Jupyter会自动输出Image对象和matplotlib可视化结果,所以书中以“程序输出”命名的图片都来自Jupyter的程序输出。这些图片的说明在代码注释中。
如何使用本书
本书第2章是PyTorch快速入门,第3~5章是对这些内容的详细深入介绍。第6章是一个简单而完整的深度学习案例。
如果你是经验丰富的研究人员,之前对PyTorch十分熟悉,对本书的某些例子比较感兴趣,那么你可以跳过前5章,直接阅读第6章,了解这些例子的程序设计与文件组织安排,然后阅读相应的例子。
如果你是初学者,想以最快的速度掌握PyTorch并将PyTorch应用到实际项目中,那么你可以花费2~3小时阅读2.2节的相关内容。如果你需要深入了解某部分的内容,那么可以阅读相应章节。
如果你是初学者,想完整全面地掌握PyTorch,那么建议你:
? 先阅读第1~5章,了解PyTorch的各个基础知识。
? 再阅读第6章,了解PyTorch实践中的技巧。
? 最后从第7~10章挑选出感兴趣的例子,动手实践。
最后,希望读者在阅读本书的时候,尽量结合本书的配套代码阅读、修改、运行之。
致谢
杜玉姣同学在我编写本书的时候,给了我许多建议,并协助审阅了部分章节,在此特向她表示谢意。在编写本书时,本书编辑郑柳洁女士给予了很大的帮助,在此特向她致谢。感谢我的家人一直以来对我的支持,感谢我的导师肖波副教授对我的指导。感谢我的同学、师弟师妹们,他们在使用PyTorch中遇到了很多问题,给了我许多反馈意见。
由于笔者水平所限,书中难免有错误和不当之处,欢迎读者批评指正。具体意见可以发表在GitHub上的issue(https://github.com/chenyuntc/pytorch-book/issues)中。

目录

目录
1 PyTorch简介
1.1 PyTorch的诞生
1.2 常见的深度学习框架简介
1.2.1 Theano
1.2.2 TensorFlow
1.2.3 Keras
1.2.4 Caffe/Caffe2
1.2.5 MXNet
1.2.6 CNTK
1.2.7 其他框架
1.3 属于动态图的未来
1.4 为什么选择PyTorch
1.5 星火燎原
1.6 fast.ai 放弃Keras+TensorFlow选择PyTorch
2 快速入门
2.1 安装与配置
2.1.1 安装PyTorch
2.1.2 学习环境配置
2.2 PyTorch入门第一步
2.2.1 Tensor
2.2.2 Autograd:自动微分
2.2.3 神经网络
2.2.4 小试牛刀:CIFAR-10分类
3 Tensor和autograd
3.1 Tensor
3.1.1 基础操作
3.1.2 Tensor和Numpy
3.1.3 内部结构
3.1.4 其他有关Tensor的话题
3.1.5 小试牛刀:线性回归
3.2 autograd
3.2.1 Variable
3.2.2 计算图
3.2.3 扩展autograd
3.2.4 小试牛刀:用Variable实现线性回归
4 神经网络工具箱nn
4.1 nn.Module
4.2 常用的神经网络层
4.2.1 图像相关层
4.2.2 激活函数
4.2.3 循环神经网络层
4.2.4 损失函数
4.3 优化器
4.4 nn.functional
4.5 初始化策略
4.6 nn.Module深入分析
4.7 nn和autograd的关系
4.8 小试牛刀:用50行代码搭建ResNet
5 PyTorch中常用的工具
5.1 数据处理
5.2 计算机视觉工具包:torchvision
5.3 可视化工具
5.3.1 Tensorboard
5.3.2 visdom
5.4 使用GPU加速:cuda
5.5 持久化
6 PyTorch实战指南
6.1 编程实战:猫和狗二分类
6.1.1 比赛介绍
6.1.2 文件组织架构
6.1.3 关于__init__.py
6.1.4 数据加载
6.1.5 模型定义
6.1.6 工具函数
6.1.7 配置文件
6.1.8 main.py
6.1.9 使用
6.1.10 争议
6.2 PyTorch Debug 指南
6.2.1 ipdb 介绍
6.2.2 在PyTorch中Debug
7 AI插画师:生成对抗网络
7.1 GAN的原理简介
7.2 用GAN生成动漫头像
7.3 实验结果分析
8 AI艺术家:神经网络风格迁移
8.1 风格迁移原理介绍
8.2 用PyTorch实现风格迁移
8.3 实验结果分析
9 AI诗人:用RNN写诗
9.1 自然语言处理的基础知识
9.1.1 词向量
9.1.2 RNN
9.2 CharRNN
9.3 用PyTorch实现CharRNN
9.4 实验结果分析
10 Image Caption:让神经网络看图讲故事
10.1 图像描述介绍
10.2 数据
10.2.1 数据介绍
10.2.2 图像数据处理
10.2.3 数据加载
10.3 模型与训练
10.4 实验结果分析
11 展望与未来
11.1 PyTorch的局限与发展
11.2 使用建议

读者评论

  • 运行.backward,观察调用之前和调用之后的grad

    net.zero_grad() # 把net中所有可学习参数的梯度清零
    print(‘反向传播之前 conv1.bias的梯度’)
    print(net.conv1.bias.grad)
    loss.backward()
    print(‘反向传播之后 conv1.bias的梯度’)
    print(net.conv1.bias.grad)

    RuntimeError Traceback (most recent call last)
    ~\AppData\Local\Temp\ipykernel_21016\233692853.py in <module>
    3 print(‘反向传播之前 conv1.bias的梯度’)
    4 print(net.conv1.bias.grad)
    ——> 5 loss.backward()
    6 print(‘反向传播之后 conv1.bias的梯度’)
    7 print(net.conv1.bias.grad)

    ~\AppData\Roaming\Python\Python39\site-packages\torch_tensor.py in backward(self, gradient, retain_graph, create_graph, inputs)
    490 inputs=inputs,
    491 )
    —> 492 torch.autograd.backward(
    493 self, gradient, retain_graph, create_graph, inputs=inputs
    494 )

    ~\AppData\Roaming\Python\Python39\site-packages\torch\autograd_init__.py in backward(tensors, grad_tensors, retain_graph, create_graph, grad_variables, inputs)
    249 # some Python versions print out the first line of a multi-line function
    250 # calls in the traceback and some print out the last line
    —> 251 Variable._execution_engine.run_backward( # Calls into the C++ engine to run the backward pass
    252 tensors,
    253 grad_tensors
    ,

    RuntimeError: Found dtype Long but expected Float

    xuwenzhuo发表于 2024/1/19 11:24:52
    • 第41页第二章反向传播loss.backward()报错快速入门数据类型不一致

      xuwenzhuo发表于 2024/1/19 11:27:00
  • 零基础,求带

    QINWEIRONG发表于 2023/12/19 21:28:02
  • 在下载的Pytorch book.zip中第九章没有data目录。执行程序时找不到相关的data

    Jack发表于 2022/4/6 11:38:41
    • 也找不到tang.npz,与书中说的”二进制文件tang.npz已在本书附带代码中提供“不符合

      Jack发表于 2022/4/6 11:41:06
  • chapter6中没有best—pratice,第六章没有猫狗大战的代码

    桂志勇发表于 2022/1/13 10:03:27
  • P80的y_pred = x.mm(w) + b.expand_as(y)为什么会报错:
    RuntimeError: expected scalar type Long but found Float

    qbl发表于 2021/5/24 19:00:19

下载资源

电子书版本

  • Epub

相关博文

  • 如此多的深度学习框架,为什么我选择PyTorch?

    如此多的深度学习框架,为什么我选择PyTorch?

    Jessica瑾妞 2018-01-18

    小编说:目前研究人员正在使用的深度学习框架不尽相同,本文介绍了6种常见的深度学习框架,PyTorch与他们相比又有哪些优势呢?本文选自《深度学习框架PyTorch:入门与实践》 1 PyTorch的诞生 2017年1月,Facebo...

    Jessica瑾妞 2018-01-18
    3103 0 0 0

相关图书

AI魔法绘画:用Stable Diffusion挑战无限可能

陈然 (作者)

本书以实际操作为导向,详细讲解基于Stable Diffusion进行AI绘画的完整学习路线,包括绘画技巧、图片生成、提示词编写、ControlNet插件、模型...

 

一本书读懂ChatGPT

魏进锋 (作者)

本书以通俗易懂的语言对ChatGPT进行全面讲解。 本书分为10章。 第1章对ChatGPT及ChatGPT的创造者OpenAI进行初步讲解。 第2章讲解...

 

可解释人工智能导论

杨强 范力欣 朱军 陈一昕 张拳石 朱松纯 陶大程 崔鹏 周少华 刘琦 黄萱菁 张永锋 (作者)

本书全面介绍可解释人工智能的基础知识、理论方法和行业应用。全书分为三部分,共11 章。第一部分为第1 章,揭示基于数据驱动的人工智能系统决策机制,提出一种基于人...

 

隐私计算

陈凯 杨强 (作者)

在大数据和人工智能时代,如何在享受新技术带来的便利性的同时保护自己的隐私,是一个重要的问题。本书系统讲解了隐私计算的基础技术和实践案例,全书共有11 章,按层次...

 

知识图谱与认知智能:基本原理、关键技术、应用场景与解决方案

吴睿 (作者)

认知的高度决定了你创造价值的高度,包括你对世界的认知及世界对你的认知。知识图谱与认知智能技术的发展,既孕育了圈层变更的机会,也带来了人、机器、企业如何协同与博弈...

 

实用推荐系统

Kim Falk (作者) 李源 朱罡罡 温睿 (译者)

要构建一个实用的“智能”推荐系统,不仅需要有好的算法,还需要了解接收推荐的用户。本书分为两部分,第一部分侧重于基础架构,主要介绍推荐系统的工作原理,展示如何创建...

¥119.00