- model.train():启用 Batch Normalization 和 Dropout。作用:对BN层,保证BN层能够用到每一批数据的均值和方差,并进行计算更新;对于Dropout,model.train()是随机取一部分网络连接来训练更新参数。
- model.eval():不启用 Batch Normalization 和 Dropout
- with torch.no_grad():with语句块内停止autograd模块的工作,不计算梯度/不更新梯度,加速和节省显存
- 参考链接:【PyTorch】搞定网络训练中的model.train()和model.eval()模式 - 知乎 (zhihu.com)