🐒PyTorch入门
type
status
date
slug
summary
tags
category
icon
password
📝技巧
anaconda的下载与pytorch的安装
- ctrl+p 看函数的参数
- input需要格式的话(看官方文档的),用torch.reshape(input,(-1,1,5,5))
📝概念
自动求导(Autograd)
- 运行时定义的框架,反向传播是根据你的代码来确定如何运行,并且每次迭代可以是不同的。
CUDA 张量
Tensors 张量 == 数组
- 可以使用GPU进行计算
- 初始化:
- 任何 以"_" 结尾的操作都会用结果替换原变量,例如: "x.copy_(y)", "x.t_()", 都会改变 "x"
- 加法 x + y torch.add(x, y) y.add_(x)
- 平均值 out = z.mean()
torch.view
: 可以改变张量的维度和大小
- 如果你有只有一个元素的张量,使用
.item()
来得到Python数据类型的数值
- NumPy转换: b = a.numpy()
- 所有的 Tensor 类型默认都是基于CPU, CharTensor 类型不支持到 NumPy 的转换
- 将CPU张量移动到GPU上来利用GPU的并行计算能力 x_cuda = x.cuda()
- device = torch.device("cuda")
张量
- 追踪所有对于该张量的操作:
.requires_grad
为True
- 完成计算后
.backward()
,自动计算所有的梯度,自动积累到.grad
属性。
- 阻止张量跟踪,调用
.detach()
或者
- 每个张量都有一个.grad_fn属性(如果该张量是用户手动创建的,则grad_fn为None)
.requires_grad_( ... )
可以改变现有张量的requires_grad
属性。 如果没有指定的话,默认输入的flag是False。
梯度
- 取消梯度追踪:
x.detach_()
x.requires_grad_(False)
来实现相同的效果。
- 再次计算梯度:在取消了梯度追踪后,即使我们再次调用
z.backward()
来计算梯度,梯度的计算也将不会发生。此时,输出的梯度将是None。
dataset
dataset告诉数据路径: 第一张是什么,第二张是什么,几张
dataload是表示怎么拿
neural network == NN
这个图的意思是: 卷积输出通道数 == 卷积核的个数 因为卷积完后一定会变成一通道
📝模型搭建
数据处理
层:
卷积 池化 非线性激活 正则化层少用 dropout
实战与Sequential
卷积后只改变通道数,池化后只改变规模
损失函数与反向传播
完整训练过程
用上GPU:把网络模型,数据(输入,标注),损失函数 都.cuda()就好了
实战技巧
auto_augment: 当
auto_augment
参数设置为True时,GarbageDataset
类会在获取每个样本时随机选择一个预定义的AutoAugment策略,并将该策略应用于对应的图像上。AutoAugment策略包括一系列预定义的图像增强操作,如旋转、剪切、翻转等,用于改变图像的外观和结构。A custom Dataset class must implement three functions: init, len, and getitem.
上一篇
深度学习算法
下一篇
Transformer
Loading...