本文仅做一些笔记,详情请直接去看
【PyTorch trick 集锦】
【PyTorch trick 集锦github】
目录为:
- 指定GPU编号
- 查看模型每层输出详情
- 梯度裁剪
- 扩展单张图片维度
- one hot编码
- 防止验证模型时爆显存
- 学习率衰减
- 冻结某些层的参数
- 对不同层使用不同学习率
- 模型相关操作
- Pytorch内置one hot函数
- 网络参数初始化(小学生 补充)
- 加载内置预训练模型
1、查看模型前传中的尺寸变化
from torchsummary import summary
summary(your_model, input_size=(channels, H, W))
2、扩展图片维度
# image = torch.tensor(cv2.imread(img_path))
image1= image[np.newaxis, :, :, :]
image2= image.unsqueeze(dim=0)
3、冻结某些层的参数
for name, value in net.named_parameters():
value.requires_grad = name not in no_grad
# 最后在定义优化器时,只对requires_grad为True的层的参数进行更新。??????
optimizer = optim.Adam(filter(lambda p: p.requires_grad, net.parameters()), lr=0.01)
4、不同层不同学习率
optimizer = optim.Adam(
[
{"params": [parms for name, parms in net.named_parameters() if name in convlist], 'lr': 0.01},
{"params": [parms for name, parms in net.named_parameters() if name not in convlist], 'lr': 0.001},
],
weight_decay=1e-3,
)