0%

pytorch-b站

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的使用

笔记

nn.functional和nn的区别

疑问

bug

弹幕

p17 土堆说卷积操作(可选看)

笔记

pycharm ctrl+p打开代码提示

pytorch官方文档

疑问

bug

弹幕

p18 神经网络-卷积层

笔记

自动学习卷积核的参数

疑问

bug

弹幕

p19 神经网络-最大池化的使用

笔记

  • 减少数据,减少参数参数

疑问

pytorch的内部,直接传他的DataLoader会对每一个进行操作

bug

TensorBoard的使用

1
2
3
4
5
6
# 得到tensorboard的位置
pip show tensorflow-gpu


# 使用绝对路径运行
python /root/anaconda3/envs/python377/lib/python3.7/site-packages/tensorboard/main.py --logdir=logs --port=41918 --bind_all

tensorboard使用不了
参考文献2

弹幕

p20 神经网络-非线性激活

笔记

疑问

bug

弹幕

p21 神经网络-线性层及其他层介绍

笔记

疑问

bug

弹幕

p22 神经网络-搭建小实战和Sequential的使用

笔记

  • 如何根据网路结构图自己重新搭建代码
    • 自己去猜测不知道的参数
  • 利用特殊值检查网络的合理性
  • tensorboard可视化网络结构

疑问

bug

弹幕

p23 损失函数与反向传播

笔记

  • loss的作用
    • 计算实际输出和目标之间的差距
    • 为我们更新输出提供一定的依据(反向传播)
  • 对loss进行backward,得到反向传播的梯度

疑问

tensor 和Tensor的区别

  • 而且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_gradmodel.zero_grad的区别

pytorch中model eval和torch no grad()的区别

Evaluating pytorch models: with torch.no_grad vs model.eval()

bug

弹幕

p31 利用GPU训练(一)

笔记

1
2
3
4
5
6
7
网络模型

数据(输入、标注)

损失函数

.cuda

!nvidia-smi 查看gpu的型号

疑问

bug

弹幕

p32 利用GPU训练(二)

笔记

1
2
3
4
5
6
7
网络模型

数据(输入、标注)

损失函数

.to(device)

疑问

bug

弹幕

p33 完整的模型验证套路

笔记

如果训练的时候是使用gpu训练的,运行的时候又是再cpu上运行的,记得load回来将map_location设置为cpu

疑问

bug

弹幕