https://blog.csdn.net/jinxin521125/article/details/78435899
net.eval()作用非常大,特别是在GAN生成任务中,今天下午就是忘了加net.eval()导致生成图片差异很大。据网上描述,原因是BN层计算均值问题。
使用PyTorch进行训练和测试时一定注意要把实例化的model指定train/eval。
使用PyTorch进行训练和测试时一定注意要把实例化的model指定train/eval,eval()时,框架会自动把BN和DropOut固定住,不会取平均,而是用训练好的值,不然的话,一旦test的batch_size过小,很容易就会被BN层导致生成图片颜色失真极大!!!!!!
eg:
Class Inpaint_Network()
......
Model = Inpaint_Nerwoek()
#train:
Model.train(mode=True)
.....
#test:
Model.eval()