vgg
transforms 运行机制
常用的图像预处理方法,提高泛化能力
1 | train_transform = transforms.Compose([ |
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)。