logo资料库

Dive-into-DL-Pytorch.pdf

第1页 / 共364页
第2页 / 共364页
第3页 / 共364页
第4页 / 共364页
第5页 / 共364页
第6页 / 共364页
第7页 / 共364页
第8页 / 共364页
资料共364页,剩余部分请下载后查看
动手学深度学习 Pytorch 版(demo)
深度学习简介
起源
发展
成功案例
特点
小结
练习
参考文献
2.1 环境配置
2.1.1 Anaconda
2.1.2 Jupyter
2.1.3 PyTorch
2.1.4 其他
2.2 数据操作
2.2.1 创建Tensor
2.2.2 操作
算术操作
索引
改变形状
线性代数
2.2.3 广播机制
2.2.4 运算的内存开销
2.2.5 Tensor和NumPy相互转换
Tensor转NumPy
NumPy数组转Tensor
2.2.6 Tensor on GPU
2.3 自动求梯度
2.3.1 概念
2.3.2 Tensor
2.3.2 梯度
3.1 线性回归
3.1.1 线性回归的基本要素
3.1.1.1 模型定义
3.1.1.2 模型训练
(1) 训练数据
(2) 损失函数
(3) 优化算法
3.1.1.3 模型预测
3.1.2 线性回归的表示方法
3.1.2.1 神经网络图
3.1.2.2 矢量计算表达式
小结
3.2 线性回归的从零开始实现
3.2.1 生成数据集
3.2.2 读取数据
3.2.3 初始化模型参数
3.2.4 定义模型
3.2.5 定义损失函数
3.2.6 定义优化算法
3.2.7 训练模型
小结
3.3 线性回归的简洁实现
3.3.1 生成数据集
3.3.2 读取数据
3.3.3 定义模型
3.3.4 初始化模型参数
3.3.5 定义损失函数
3.3.6 定义优化算法
3.3.7 训练模型
小结
3.4 softmax回归
3.4.1 分类问题
3.4.2 softmax回归模型
3.4.3 单样本分类的矢量计算表达式
3.4.4 小批量样本分类的矢量计算表达式
3.4.5 交叉熵损失函数
3.4.6 模型预测及评价
小结
3.5 图像分类数据集(Fashion-MNIST)
3.5.1 获取数据集
3.5.2 读取小批量
小结
参考文献
3.6 softmax回归的从零开始实现
3.6.1 获取和读取数据
3.6.2 初始化模型参数
3.6.3 实现softmax运算
3.6.4 定义模型
3.6.5 定义损失函数
3.6.6 计算分类准确率
3.6.7 训练模型
3.6.8 预测
小结
3.7 softmax回归的简洁实现
3.7.1 获取和读取数据
3.7.2 定义和初始化模型
3.7.3 softmax和交叉熵损失函数
3.7.4 定义优化算法
3.7.5 训练模型
小结
3.8 多层感知机
3.8.1 隐藏层
3.8.2 激活函数
3.8.2.1 ReLU函数
3.8.2.2 sigmoid函数
3.8.2.3 tanh函数
3.8.3 多层感知机
小结
3.9 多层感知机的从零开始实现
3.9.1 获取和读取数据
3.9.2 定义模型参数
3.9.3 定义激活函数
3.9.4 定义模型
3.9.5 定义损失函数
3.9.6 训练模型
小结
3.10 多层感知机的简洁实现
3.10.1 定义模型
3.10.2 读取数据并训练模型
小结
3.11 模型选择、欠拟合和过拟合
3.11.1 训练误差和泛化误差
3.11.2 模型选择
3.11.2.1 验证数据集
3.11.2.3 K折交叉验证
3.11.3 欠拟合和过拟合
3.11.3.1 模型复杂度
3.11.3.2 训练数据集大小
3.11.4 多项式函数拟合实验
3.11.4.1 生成数据集
3.11.4.2 定义、训练和测试模型
3.11.4.3 三阶多项式函数拟合(正常)
3.11.4.4 线性函数拟合(欠拟合)
3.11.4.5 训练样本不足(过拟合)
小结
3.12 权重衰减
3.12.1 方法
3.12.2 高维线性回归实验
3.12.3 从零开始实现
3.12.3.1 初始化模型参数
3.12.3.2 定义L_2范数惩罚项
3.12.3.3 定义训练和测试
3.12.3.4 观察过拟合
3.12.3.5 使用权重衰减
3.12.4 简洁实现
小结
3.13 丢弃法
3.13.1 方法
3.13.2 从零开始实现
3.13.2.1 定义模型参数
3.13.2.2 定义模型
3.13.2.3 训练和测试模型
3.13.3 简洁实现
小结
参考文献
3.14 正向传播、反向传播和计算图
3.14.1 正向传播
3.14.2 正向传播的计算图
3.14.3 反向传播
3.14.4 训练深度学习模型
小结
3.15 数值稳定性和模型初始化
3.15.1 衰减和爆炸
3.15.2 随机初始化模型参数
3.15.2.1 PyTorch的默认随机初始化
3.15.2.2 Xavier随机初始化
小结
参考文献
3.16 实战Kaggle比赛:房价预测
3.16.1 Kaggle比赛
3.16.2 获取和读取数据集
3.16.3 预处理数据
3.16.4 训练模型
3.16.5 K折交叉验证
3.16.6 模型选择
3.16.7 预测并在Kaggle提交结果
小结
4.1 模型构造
4.1.1 继承Module类来构造模型
4.1.2 Module的子类
4.1.2.1 Sequential类
4.1.2.2 ModuleList类
4.1.2.3 ModuleDict类
4.1.3 构造复杂的模型
小结
4.2 模型参数的访问、初始化和共享
4.2.1 访问模型参数
4.2.2 初始化模型参数
4.2.3 自定义初始化方法
4.2.4 共享模型参数
小结
4.3 模型参数的延后初始化
4.4 自定义层
4.4.1 不含模型参数的自定义层
4.4.2 含模型参数的自定义层
小结
4.5 读取和存储
4.5.1 读写Tensor
4.5.2 读写模型
4.5.2.1 state_dict
4.5.2.2 保存和加载模型
1. 保存和加载state_dict(推荐方式)
2. 保存和加载整个模型
小结
4.6 GPU计算
4.6.1 计算设备
4.6.2 Tensor的GPU计算
4.6.3 模型的GPU计算
小结
5.1 二维卷积层
5.1.1 二维互相关运算
5.1.2 二维卷积层
5.1.3 图像中物体边缘检测
5.1.4 通过数据学习核数组
5.1.5 互相关运算和卷积运算
5.1.6 特征图和感受野
小结
5.2 填充和步幅
5.2.1 填充
5.2.2 步幅
小结
5.3 多输入通道和多输出通道
5.3.1 多输入通道
5.3.2 多输出通道
5.3.3 1\times 1卷积层
小结
5.4 池化层
5.4.1 二维最大池化层和平均池化层
5.4.2 填充和步幅
5.4.3 多通道
小结
5.5 卷积神经网络(LeNet)
5.5.1 LeNet模型
5.5.2 获取数据和训练模型
小结
参考文献
5.6 深度卷积神经网络(AlexNet)
5.6.1 学习特征表示
5.6.1.1 缺失要素一:数据
5.6.1.2 缺失要素二:硬件
5.6.2 AlexNet
5.6.3 读取数据
5.6.4 训练
小结
参考文献
5.7 使用重复元素的网络(VGG)
5.7.1 VGG块
5.7.2 VGG网络
5.7.3 获取数据和训练模型
小结
参考文献
5.8 网络中的网络(NiN)
5.8.1 NiN块
5.8.2 NiN模型
5.8.3 获取数据和训练模型
小结
参考文献
5.9 含并行连结的网络(GoogLeNet)
5.9.1 Inception 块
5.9.2 GoogLeNet模型
5.9.3 获取数据和训练模型
小结
参考文献
5.10 批量归一化
5.10.1 批量归一化层
5.10.1.1 对全连接层做批量归一化
5.10.1.2 对卷积层做批量归一化
5.10.1.3 预测时的批量归一化
5.10.2 从零开始实现
5.10.2.1 使用批量归一化层的LeNet
5.10.3 简洁实现
小结
参考文献
5.11 残差网络(ResNet)
5.11.2 残差块
5.11.2 ResNet模型
5.11.3 获取数据和训练模型
小结
参考文献
5.12 稠密连接网络(DenseNet)
5.12.1 稠密块
5.12.2 过渡层
5.12.3 DenseNet模型
5.12.4 获取数据并训练模型
小结
参考文献
6.1 语言模型
6.1.1 语言模型的计算
6.1.2 n元语法
小结
6.2 循环神经网络
6.2.1 不含隐藏状态的神经网络
6.2.2 含隐藏状态的循环神经网络
6.2.3 应用:基于字符级循环神经网络的语言模型
小结
6.3 语言模型数据集(周杰伦专辑歌词)
6.3.1 读取数据集
6.3.2 建立字符索引
6.3.3 时序数据的采样
6.3.3.1 随机采样
6.3.3.2 相邻采样
小结
6.4 循环神经网络的从零开始实现
6.4.1 one-hot向量
6.4.2 初始化模型参数
6.4.3 定义模型
6.4.4 定义预测函数
6.4.5 裁剪梯度
6.4.6 困惑度
6.4.7 定义模型训练函数
6.4.8 训练模型并创作歌词
小结
6.5 循环神经网络的简洁实现
6.5.1 定义模型
6.5.2 训练模型
小结
6.6 通过时间反向传播
6.6.1 定义模型
6.6.2 模型计算图
6.6.3 方法
小结
6.7 门控循环单元(GRU)
6.7.1 门控循环单元
6.7.1.1 重置门和更新门
6.7.1.2 候选隐藏状态
6.7.1.3 隐藏状态
6.7.2 读取数据集
6.7.3 从零开始实现
6.7.3.1 初始化模型参数
6.7.3.2 定义模型
6.7.3.3 训练模型并创作歌词
6.7.4 简洁实现
小结
参考文献
6.8 长短期记忆(LSTM)
6.8.1 长短期记忆
6.8.1.1 输入门、遗忘门和输出门
6.8.1.2 候选记忆细胞
6.8.1.3 记忆细胞
6.8.1.4 隐藏状态
6.8.2 读取数据集
6.8.3 从零开始实现
6.8.3.1 初始化模型参数
6.8.4 定义模型
6.8.4.1 训练模型并创作歌词
6.8.5 简洁实现
小结
参考文献
6.9 深度循环神经网络
小结
6.10 双向循环神经网络
小结
7.1 优化与深度学习
7.1.1 优化与深度学习的关系
7.1.2 优化在深度学习中的挑战
7.1.2.1 局部最小值
7.1.2.2 鞍点
小结
参考文献
7.2 梯度下降和随机梯度下降
7.2.1 一维梯度下降
7.2.2 学习率
7.2.3 多维梯度下降
7.2.4 随机梯度下降
小结
参考文献
7.3 小批量随机梯度下降
7.3.1 读取数据
7.3.2 从零开始实现
7.3.3 简洁实现
小结
参考文献
7.4 动量法
7.4.1 梯度下降的问题
7.4.2 动量法
7.4.2.1 指数加权移动平均
7.4.2.2 由指数加权移动平均理解动量法
7.4.3 从零开始实现
7.4.4 简洁实现
小结
7.5 AdaGrad算法
7.5.1 算法
7.5.2 特点
7.5.3 从零开始实现
7.5.4 简洁实现
小结
参考文献
7.6 RMSProp算法
7.6.1 算法
7.6.2 从零开始实现
7.6.3 简洁实现
小结
参考文献
7.7 AdaDelta算法
7.7.1 算法
7.7.2 从零开始实现
7.7.3 简洁实现
小结
参考文献
7.8 Adam算法
7.8.1 算法
7.8.2 从零开始实现
7.8.3 简洁实现
小结
参考文献
8.1 命令式和符号式混合编程
8.1.1 混合式编程取两者之长
8.2 异步计算
8.3 自动并行计算
8.4 多GPU计算
8.4.1 多GPU计算
8.4.2 多GPU模型的保存与加载
9.1 图像增广
9.1.1 常用的图像增广方法
9.1.1.1 翻转和裁剪
9.1.1.2 变化颜色
9.1.1.3 叠加多个图像增广方法
9.1.2 使用图像增广训练模型
9.1.2.1 使用图像增广训练模型
小结
9.2 微调
9.2.1 热狗识别
9.2.1.1 获取数据集
9.2.1.2 定义和初始化模型
9.2.1.3 微调模型
小结
9.3 目标检测和边界框
9.3.1 边界框
小结
9.4 锚框
9.4.1 生成多个锚框
9.4.2 交并比
9.4.3 标注训练集的锚框
9.4.4 输出预测边界框
小结
练习
10.1 词嵌入(word2vec)
10.1.1 为何不采用one-hot向量
10.1.2 跳字模型
10.1.2.1 训练跳字模型
10.1.3 连续词袋模型
10.1.3.1 训练连续词袋模型
小结
参考文献
10.2 近似训练
10.2.1 负采样
10.2.2 层序softmax
小结
10.3 word2vec的实现
10.3.1 处理数据集
10.3.1.1 建立词语索引
10.3.1.2 二次采样
10.3.1.3 提取中心词和背景词
10.3.2 负采样
10.3.3 读取数据
10.3.4 跳字模型
10.3.4.1 嵌入层
10.3.4.2 小批量乘法
10.3.4.3 跳字模型前向计算
10.3.5 训练模型
10.3.5.1 二元交叉熵损失函数
10.3.5.2 初始化模型参数
10.3.5.3 定义训练函数
10.3.6 应用词嵌入模型
小结
参考文献
10.4 子词嵌入(fastText)
小结
参考文献
10.5 全局向量的词嵌入(GloVe)
10.5.1 GloVe模型
10.5.2 从条件概率比值理解GloVe模型
小结
参考文献
10.6 求近义词和类比词
10.6.1 使用预训练的词向量
10.6.2 应用预训练词向量
10.6.2.1 求近义词
10.6.2.2 求类比词
小结
参考文献
10.7 文本情感分类:使用循环神经网络
10.7.1 文本情感分类数据
10.7.1.1 读取数据
10.7.1.2 预处理数据
10.7.1.3 创建数据迭代器
10.7.2 使用循环神经网络的模型
10.7.2.1 加载预训练的词向量
10.7.2.2 训练并评价模型
小结
参考文献
10.8 文本情感分类:使用卷积神经网络(textCNN)
10.8.1 一维卷积层
10.8.2 时序最大池化层
10.8.3 读取和预处理IMDb数据集
10.8.4 textCNN模型
10.8.4.1 加载预训练的词向量
10.8.4.2 训练并评价模型
小结
参考文献
10.9 编码器—解码器(seq2seq)
10.9.1 编码器
10.9.2 解码器
10.9.3 训练模型
小结
参考文献
10.10 束搜索
10.10.1 贪婪搜索
10.10.2 穷举搜索
10.10.3 束搜索
小结
10.11 注意力机制
10.11.1 计算背景变量
10.11.1.1 矢量化计算
10.11.2 更新隐藏状态
10.11.3 发展
小结
参考文献
10.12 机器翻译
10.12.1 读取和预处理数据
10.12.2 含注意力机制的编码器—解码器
10.12.2.1 编码器
10.12.2.2 注意力机制
10.12.2.3 含注意力机制的解码器
10.12.3 训练模型
10.12.4 预测不定长的序列
10.12.5 评价翻译结果
小结
参考文献
动⼿手学深度学习 PYTORCH 版(DEMO) (https://github.com/ShusenTang/Dive-into-DL-PyTorch) PDF 制作by [Marcus Yang](https://github.com/chenyang1999)
深度学习简介 (注:此节完全同原⽂文,为了了完整性⽽而搬运过来) 你可能已经接触过编程,并开发过⼀一两款程序。同时 你可能读过关于深度学习或者机器器学习的铺天盖地的报道,尽管很多时候它们被赋予了了更更⼴广义的名字: ⼈人⼯工智能。实际上,或者说幸运的是,⼤大部分程序并不不需要深度学习或者是更更⼴广义上的⼈人⼯工智能技术。 例例如,如果我们要为⼀一台微波炉编写⼀一个⽤用户界⾯面,只需要⼀一点⼉儿⼯工夫我们便便能设计出⼗十⼏几个按钮以及 ⼀一系列列能精确描述微波炉在各种情况下的表现的规则。再⽐比如,假设我们要编写⼀一个电⼦子邮件客户端。 这样的程序⽐比微波炉要复杂⼀一些,但我们还是可以沉下⼼心来⼀一步⼀一步思考:客户端的⽤用户界⾯面将需要⼏几 个输⼊入框来接受收件⼈人、主题、邮件正⽂文等,程序将监听键盘输⼊入并写⼊入⼀一个缓冲区,然后将它们显示 在相应的输⼊入框中。当⽤用户点击“发送”按钮时,我们需要检查收件⼈人邮箱地址的格式是否正确,并检查 邮件主题是否为空,或在主题为空时警告⽤用户,⽽而后⽤用相应的协议传送邮件。 值得注意的是,在以上两个例例⼦子中,我们都不不需要收集真实世界中的数据,也不不需要系统地提取这些数 据的特征。只要有充⾜足的时间,我们的常识与编程技巧已经⾜足够让我们完成任务。 与此同时,我们很容易易就能找到⼀一些连世界上最好的程序员也⽆无法仅⽤用编程技巧解决的简单问题。例例 如,假设我们想要编写⼀一个判定⼀一张图像中有没有猫的程序。这件事听起来好像很简单,对不不对?程序 只需要对每张输⼊入图像输出“真”(表示有猫)或者“假”(表示⽆无猫)即可。但令⼈人惊讶的是,即使是世 界上最优秀的计算机科学家和程序员也不不懂如何编写这样的程序。 我们该从哪⾥里里⼊入⼿手呢?我们先进⼀一步简化这个问题:若假设所有图像的⾼高和宽都是同样的400像素⼤大 ⼩小,⼀一个像素由红绿蓝三个值构成,那么⼀一张图像就由近50万个数值表示。那么哪些数值隐藏着我们需 要的信息呢?是所有数值的平均数,还是四个⻆角的数值,抑或是图像中的某⼀一个特别的点?事实上,要 想解读图像中的内容,需要寻找仅仅在结合成千上万的数值时才会出现的特征,如边缘、质地、形状、 眼睛、⿐鼻⼦子等,最终才能判断图像中是否有猫。 ⼀一种解决以上问题的思路路是逆向思考。与其设计⼀一个解决问题的程序,不不如从最终的需求⼊入⼿手来寻找⼀一 个解决⽅方案。事实上,这也是⽬目前的机器器学习和深度学习应⽤用共同的核⼼心思想:我们可以称其为“⽤用数 据编程”。与其枯坐在房间⾥里里思考怎么设计⼀一个识别猫的程序,不不如利利⽤用⼈人类⾁肉眼在图像中识别猫的能 ⼒力力。我们可以收集⼀一些已知包含猫与不不包含猫的真实图像,然后我们的⽬目标就转化成如何从这些图像⼊入 ⼿手得到⼀一个可以推断出图像中是否有猫的函数。这个函数的形式通常通过我们的知识来针对特定问题选 定。例例如,我们使⽤用⼀一个⼆二次函数来判断图像中是否有猫,但是像⼆二次函数系数值这样的函数参数的具 体值则是通过数据来确定。 通俗来说,机器器学习是⼀一⻔门讨论各式各样的适⽤用于不不同问题的函数形式,以及如何使⽤用数据来有效地获 取函数参数具体值的学科。深度学习是指机器器学习中的⼀一类函数,它们的形式通常为多层神经⽹网络。近 年年来,仰仗着⼤大数据集和强⼤大的硬件,深度学习已逐渐成为处理理图像、⽂文本语料料和声⾳音信号等复杂⾼高维 度数据的主要⽅方法。
我们现在正处于⼀一个程序设计得到深度学习的帮助越来越多的时代。这可以说是计算机科学历史上的⼀一 个分⽔水岭。举个例例⼦子,深度学习已经在你的⼿手机⾥里里:拼写校正、语⾳音识别、认出社交媒体照⽚片⾥里里的好友 们等。得益于优秀的算法、快速⽽而廉价的算⼒力力、前所未有的⼤大量量数据以及强⼤大的软件⼯工具,如今⼤大多数 软件⼯工程师都有能⼒力力建⽴立复杂的模型来解决⼗十年年前连最优秀的科学家都觉得棘⼿手的问题。 本书希望能帮助读者进⼊入深度学习的浪潮中。我们希望结合数学、代码和样例例让深度学习变得触⼿手可 及。本书不不要求具有⾼高深的数学或编程背景,我们将随着章节的发展逐⼀一解释所需要的知识。更更值得⼀一 提的是,本书的每⼀一节都是⼀一个可以独⽴立运⾏行行的Jupyter记事本。读者可以从⽹网上获得这些记事本,并 且可以在个⼈人电脑或云端服务器器上执⾏行行它们。这样读者就可以随意改动书中的代码并得到及时反馈。我 们希望本书能帮助和启发新⼀一代的程序员、创业者、统计学家、⽣生物学家,以及所有对深度学习感兴趣 的⼈人。
动⼿手学深度学习 Pytorch 版(demo) 深度学习简介 起源 发展 成功案例例 特点 ⼩小结 练习 参考⽂文献 2.1 环境配置 2.1.1 Anaconda 2.1.2 Jupyter 2.1.3 PyTorch 2.1.4 其他 2.2 数据操作 2.2.1 创建 Tensor 2.2.2 操作 算术操作 索引 改变形状 线性代数 2.2.3 ⼴广播机制 2.2.4 运算的内存开销 2.2.5 Tensor 和NumPy相互转换 Tensor 转NumPy NumPy数组转 Tensor 2.2.6 Tensor on GPU 2.3 ⾃自动求梯度 2.3.1 概念 2.3.2 Tensor 2.3.2 梯度 3.1 线性回归 3.1.1 线性回归的基本要素 3.1.1.1 模型定义 3.1.1.2 模型训练 (1) 训练数据 (2) 损失函数 (3) 优化算法 3.1.1.3 模型预测 3.1.2 线性回归的表示⽅方法 3.1.2.1 神经⽹网络图 3.1.2.2 ⽮矢量量计算表达式
⼩小结 3.2 线性回归的从零开始实现 3.2.1 ⽣生成数据集 3.2.2 读取数据 3.2.3 初始化模型参数 3.2.4 定义模型 3.2.5 定义损失函数 3.2.6 定义优化算法 3.2.7 训练模型 ⼩小结 3.3 线性回归的简洁实现 3.3.1 ⽣生成数据集 3.3.2 读取数据 3.3.3 定义模型 3.3.4 初始化模型参数 3.3.5 定义损失函数 3.3.6 定义优化算法 3.3.7 训练模型 ⼩小结 3.4 softmax回归 3.4.1 分类问题 3.4.2 softmax回归模型 3.4.3 单样本分类的⽮矢量量计算表达式 3.4.4 ⼩小批量量样本分类的⽮矢量量计算表达式 3.4.5 交叉熵损失函数 3.4.6 模型预测及评价 ⼩小结 3.5 图像分类数据集(Fashion-MNIST) 3.5.1 获取数据集 3.5.2 读取⼩小批量量 ⼩小结 参考⽂文献 3.6 softmax回归的从零开始实现 3.6.1 获取和读取数据 3.6.2 初始化模型参数 3.6.3 实现softmax运算 3.6.4 定义模型 3.6.5 定义损失函数 3.6.6 计算分类准确率 3.6.7 训练模型 3.6.8 预测 ⼩小结
3.7 softmax回归的简洁实现 3.7.1 获取和读取数据 3.7.2 定义和初始化模型 3.7.3 softmax和交叉熵损失函数 3.7.4 定义优化算法 3.7.5 训练模型 ⼩小结 3.8 多层感知机 3.8.1 隐藏层 3.8.2 激活函数 3.8.2.1 ReLU函数 3.8.2.2 sigmoid函数 3.8.2.3 tanh函数 3.8.3 多层感知机 ⼩小结 3.9 多层感知机的从零开始实现 3.9.1 获取和读取数据 3.9.2 定义模型参数 3.9.3 定义激活函数 3.9.4 定义模型 3.9.5 定义损失函数 3.9.6 训练模型 ⼩小结 3.10 多层感知机的简洁实现 3.10.1 定义模型 3.10.2 读取数据并训练模型 ⼩小结 3.11 模型选择、⽋欠拟合和过拟合 3.11.1 训练误差和泛化误差 3.11.2 模型选择 3.11.2.1 验证数据集 3.11.2.3 折交叉验证 3.11.3 ⽋欠拟合和过拟合 3.11.3.1 模型复杂度 3.11.3.2 训练数据集⼤大⼩小 3.11.4 多项式函数拟合实验 3.11.4.1 ⽣生成数据集 3.11.4.2 定义、训练和测试模型 3.11.4.3 三阶多项式函数拟合(正常) 3.11.4.4 线性函数拟合(⽋欠拟合) 3.11.4.5 训练样本不不⾜足(过拟合) ⼩小结
3.12 权重衰减 3.12.1 ⽅方法 3.12.2 ⾼高维线性回归实验 3.12.3 从零开始实现 3.12.3.1 初始化模型参数 3.12.3.2 定义 范数惩罚项 3.12.3.3 定义训练和测试 3.12.3.4 观察过拟合 3.12.3.5 使⽤用权重衰减 3.12.4 简洁实现 ⼩小结 3.13 丢弃法 3.13.1 ⽅方法 3.13.2 从零开始实现 3.13.2.1 定义模型参数 3.13.2.2 定义模型 3.13.2.3 训练和测试模型 3.13.3 简洁实现 ⼩小结 参考⽂文献 3.14 正向传播、反向传播和计算图 3.14.1 正向传播 3.14.2 正向传播的计算图 3.14.3 反向传播 3.14.4 训练深度学习模型 ⼩小结 3.15 数值稳定性和模型初始化 3.15.1 衰减和爆炸 3.15.2 随机初始化模型参数 3.15.2.1 PyTorch的默认随机初始化 3.15.2.2 Xavier随机初始化 ⼩小结 参考⽂文献 3.16 实战Kaggle⽐比赛:房价预测 3.16.1 Kaggle⽐比赛 3.16.2 获取和读取数据集 3.16.3 预处理理数据 3.16.4 训练模型 3.16.5 折交叉验证 3.16.6 模型选择 3.16.7 预测并在Kaggle提交结果 ⼩小结
4.1 模型构造 4.1.1 继承 Module 类来构造模型 4.1.2 Module 的⼦子类 4.1.2.1 Sequential 类 4.1.2.2 ModuleList 类 4.1.2.3 ModuleDict 类 4.1.3 构造复杂的模型 ⼩小结 4.2 模型参数的访问、初始化和共享 4.2.1 访问模型参数 4.2.2 初始化模型参数 4.2.3 ⾃自定义初始化⽅方法 4.2.4 共享模型参数 ⼩小结 4.3 模型参数的延后初始化 4.4 ⾃自定义层 4.4.1 不不含模型参数的⾃自定义层 4.4.2 含模型参数的⾃自定义层 ⼩小结 4.5 读取和存储 4.5.1 读写 Tensor 4.5.2 读写模型 4.5.2.1 state_dict 4.5.2.2 保存和加载模型 1. 保存和加载 state_dict (推荐⽅方式) 2. 保存和加载整个模型 ⼩小结 4.6 GPU计算 4.6.1 计算设备 4.6.2 Tensor 的GPU计算 4.6.3 模型的GPU计算 ⼩小结 5.1 ⼆二维卷积层 5.1.1 ⼆二维互相关运算 5.1.2 ⼆二维卷积层 5.1.3 图像中物体边缘检测 5.1.4 通过数据学习核数组 5.1.5 互相关运算和卷积运算 5.1.6 特征图和感受野 ⼩小结 5.2 填充和步幅 5.2.1 填充
分享到:
收藏