1.Pytorch

1.torch.nn.Module

1.model.stat_dict()-返回包含整个模型状态的字典

使用torch.save(model.stat_dict(), path)可以将模型的当前状态保存下来。path的后缀是.ckpt。ckpt格式的文件用来保存weight、bias、gradients。

2.model.train()、model.eval()

如果模型中有BN层和Dropout,需要在训练时添加model.train(),model.train()是保证BN层能够用到每一批数据的均值和方差,对于dropout,model.train()是随机取一部分网络链接来训练更新参数。

不启用 Batch Normalization 和 Dropout。
如果模型中有BN层(Batch Normalization)和Dropout,在测试时添加model.eval()。model.eval()是保证BN层能够用全部训练数据的均值和方差,即测试过程中要保证BN层的均值和方差不变。对于Dropout,model.eval()是利用到了所有网络连接,即不进行随机舍弃神经元。


3.torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1,padding=0, dilation=1, groups=1,bias=True, padding_mode=‘zeros’)

  • in_channels:输入的通道数目 【必选】
  • out_channels: 输出的通道数目 【必选】
  • kernel_size:卷积核的大小,类型为int 或者元组,当卷积是方形的时候,只需要一个整数边长即可,卷积不是方形,要输入一个元组表示 高和宽。【必选】
  • stride: 卷积每次滑动的步长为多少,默认是 1 【可选】
  • padding: 设置在所有边界增加值为0的边距的大小。(也就是在feature map 外围增加几圈 0 ),例如当padding=1时,原来大小为3X3,那么之后的大小就是5X5。即在四周增加了一圈0。
  • dilation:控制卷积核之间的间距。dilation=1是默认的卷积核操作。
  • image.png
  • bias: 是否将一个 学习到的 bias 增加输出中,默认是 True 。【可选】
  • padding_mode : 字符串类型,接收的字符串只有 “zeros” 和 “circular”。【可选】


4.torch.flatten()与torch.nn.Flatten()

torch.flatten(input, start_dim=0,end_dim=-1):默认是把一个高维向量展开成一个一维向量。
torch.nn.Flatten(start_dim=1,end_dim=-1):默认下标为0的维度不变,其余展开为一个一维向量(因为第0维一般是batch)


2.torch.optim

1.Adam-L2正则化

torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False)
weight_decay:默认为0,相当于代价函数中的lambda。

2.torchvision

torchvision由流行的数据集、模型架构和计算机视觉常用的图像转换组成。

1.torchvision.transforms

transforms能够进行常见的图像变换。可以通过Compose将变换操作链式连接。

1.torchvision.transforms.Compose(transforms)

将几个图像转换操作组合起来,这个转换不支持torchscript.
参数:
transforms:一系列transforms的组合。