0%

深度学习在图像处理中的应用教程

github链接

vgg

transforms 运行机制

常用的图像预处理方法,提高泛化能力

1
2
3
4
5
6
train_transform = transforms.Compose([
transforms.Resize((32, 32)), # 缩放为32*32
transforms.RandomCrop(32, padding=4), # 随机裁剪
transforms.ToTensor(), # 图片转张量,同时归一化0-255 --> 0-1
transforms.Normalize(norm_mean, norm_std), # 标准化均值为0标准差为1
])

torch.load_state_dict()函数

将预训练的参数权重加载到新的模型之中

model.eval()

参考链接

model.eval()与 model.train()的区别
  • model.train()是保证BN层能够用到每一批数据的均值和方差。

    • 对于Dropout,model.train()是随机取一部分网络连接来训练更新参数。
  • model.eval()是保证BN层能够用全部训练数据的均值和方差,即测试过程中要保证BN层的均值和方差不变。

    • 对于Dropout,model.eval()是利用到了所有网络连接,即不进行随机舍弃神经元。
model.eval()与 torch.no_grad()的区别
  • model.eval()足够得到正确的validation/test的结果;
  • torch.no_grad()则是更进一步加速和节省gpu空间(因为不用计算和存储梯度),从而可以更快计算,也可以跑更大的batch来测试。

tqdm

一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。

Q:如果阅读本文需要付费,你是否愿意为此支付1元?