PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】 BV1hE411t7RN
$\color{red}{\text{这个视频有很多理论性错误,具体原理需参考cs231n}}$
p1 P1. PyTorch环境的配置及安装(Configuration and Installation of PyTorch)【PyTorch教程】
笔记
疑问
bug
弹幕
p2 P2. Python编辑器的选择、安装及配置(PyCharm、Jupyter安装)【PyTorch教程】
笔记
疑问
bug
弹幕
p3 【FAQ】为什么torch.cuda.is_available返回False
笔记
疑问
bug
弹幕
p4 P3. Python学习中的两大法宝函数(当然也可以用在PyTorch)
笔记
疑问
bug
弹幕
p5 P4. PyCharm及Jupyter使用及对比
笔记
疑问
bug
弹幕
p6 P5. PyTorch加载数据初认识
笔记
pytorch中处理数据的两个类
Dataset:提供一种方式获取数据及其label,数据的总数
Dataloader:为后面的网络提供不同的数据形式
疑问
bug
弹幕
p7 P6. Dataset类代码实战
笔记
- 重点改写
__getitem__
方法,返回数据和label - 数据集类支持
+
运算合并:必须要重载__len__
魔法函数
疑问
bug
弹幕
p8 P7. TensorBoard的使用(一)
笔记
疑问
bug
弹幕
p9 P8. TensorBoard的使用(二)
笔记
疑问
bug
弹幕
p10 P9. Transforms的使用(一)
笔记
疑问
bug
弹幕
p11 P9. Transforms的使用(二)
笔记
- totensor和resize
疑问
bug
弹幕
p12 常见的Transforms(一)
笔记
疑问
bug
弹幕
p13 常见的Transforms(二)
笔记
疑问
bug
弹幕
p14 torchvision中的数据集使用
笔记
疑问
bug
弹幕
p15 DataLoader的使用
笔记
疑问
bug
弹幕
p16 神经网络的基本骨架-nn.Module的使用
笔记
疑问
bug
弹幕
p17 土堆说卷积操作(可选看)
笔记
pycharm ctrl+p
打开代码提示
疑问
bug
弹幕
p18 神经网络-卷积层
笔记
自动学习卷积核的参数
疑问
bug
弹幕
p19 神经网络-最大池化的使用
笔记
- 减少数据,减少参数参数
疑问
pytorch的内部,直接传他的DataLoader会对每一个进行操作
bug
TensorBoard的使用
1 | # 得到tensorboard的位置 |
弹幕
p20 神经网络-非线性激活
笔记
疑问
bug
弹幕
p21 神经网络-线性层及其他层介绍
笔记
疑问
bug
弹幕
p22 神经网络-搭建小实战和Sequential的使用
笔记
- 如何根据网路结构图自己重新搭建代码
- 自己去猜测不知道的参数
- 利用特殊值检查网络的合理性
- tensorboard可视化网络结构
疑问
bug
弹幕
p23 损失函数与反向传播
笔记
- loss的作用
- 计算实际输出和目标之间的差距
- 为我们更新输出提供一定的依据(反向传播)
- 对loss进行backward,得到反向传播的梯度
疑问
- 而且Tensor也不能dtype
bug
弹幕
p24 优化器(一)
笔记
- 优化器根据梯度调整
- 注意zero_grad
疑问
bug
弹幕
p25 优化器(二)
- 定义loss
- 定义优化器
- 计算loss
- 重置梯度
- 反向传播
- step更新
lr_scheduler 对学习速率进行调参, 此时step使用scheduler的step
笔记
疑问
bug
弹幕
p26 现有网络模型的使用及修改
笔记
- imagenet不再能公开访问
- vgg16.add_module:添加自己的网络结构
- vgg16.classfier.add_module:添加自己的网络结构
- vgg16.classfier[6] = xxx:直接改变网络结构
疑问
bug
弹幕
p27 网络模型的保存与读取
笔记
保存方法1
保存的内容:参数+结构
torch.save(model, 'model.pth')
model = torch.load('model.pth')
保存方法1的陷阱
网络模型的类必须同时存在
保存方法2
保存内容:参数
torch.save(model.state_dict(), 'model.pth')
vgg16 = torchvision.models.vgg16(pretrained=False)
vgg16.load_state(torch.load('model.pth'))
疑问
bug
弹幕
p28 完整的模型训练套路(一)
笔记
loss.item()
直接得到数字
疑问
bug
弹幕
p29 完整的模型训练套路(二)
writer.add_scalar
:画折线图- argmax(1).sum()得到总的正确数
笔记
疑问
bug
弹幕
p30 完整的模型训练套路(三)
笔记
model.train() 和 model.eval()调用特定的层才需要
疑问
with torch.no_grad
和 model.zero_grad
的区别
pytorch中model eval和torch no grad()的区别
Evaluating pytorch models: with torch.no_grad
vs model.eval()
bug
弹幕
p31 利用GPU训练(一)
笔记
1 | 网络模型 |
!nvidia-smi
查看gpu的型号
疑问
bug
弹幕
p32 利用GPU训练(二)
笔记
1 | 网络模型 |
疑问
bug
弹幕
p33 完整的模型验证套路
笔记
如果训练的时候是使用gpu训练的,运行的时候又是再cpu上运行的,记得load回来将map_location设置为cpu