0%

pytorch

常见的Transforms

使用不同的方法转换输入输出。

1
from torchvision import tranforms

按住ctrl键可以打开transforms的源码,然后可以在pycharm的左边structure处看见结构,里面包含了所有的类。注意是类,要构造一个对象。

常用的一些类包括:

  • Compose
  • ToTensor
  • Normalize
  • Resize

常见的层

  • convolution layer:能够考虑空间信息
  • maxpool layer:类似于马赛克,训练的数据量大大的减小
  • dropout layer:随机地把一些元素变成零,主要为了防止过拟合
  • non linear layer:非线性越多,才能训练出符合各种曲线的函数
  • flatten layer:该层用于将数据平铺,之后可以输入给全连接层,平铺时batch_size并不会改变
  • linear layer:全连接层,两个全连接层可以拟合任何函数,在输入时需要将各个维度展开
  • batch normalization layer:批归一化,能够加快收敛速度,但是不能提升模型精度

GPU训练

先指定device:

1
device = torch.device('cuda')

然后需要迁移模型、损失函数、样本

1
2
3
model.to(device)
loss_fn.to(device)
img.to(device) / target.to(device)