PyTorch中model.train()与model.eval()用法及区别如何详细解释?
- 内容介绍
- 文章标签
- 相关推荐
本文共计284个文字,预计阅读时间需要2分钟。
在PyTorch进行训练和测试时,务必注意将实例化的模型指定为train/eval模式。eval模式下,BN和DropOut会被固定,不会取平均值,而是使用训练好的值。否则,一旦test的batch_size过小,结果会非常不准。
使用PyTorch进行训练和测试时一定注意要把实例化的model指定train/eval,eval()时,框架会自动把BN和DropOut固定住,不会取平均,而是用训练好的值,不然的话,一旦test的batch_size过小,很容易就会被BN层导致生成图片颜色失真极大!!!!!!
Class Inpaint_Network() ...... Model = Inpaint_Nerwoek() #train: Model.train(mode=True) ..... #test: Model.eval()
model.train()
启用 BatchNormalization 和 Dropout
model.eval()
不启用 BatchNormalization 和 Dropout
训练完train样本后,生成的模型model要用来测试样本。
本文共计284个文字,预计阅读时间需要2分钟。
在PyTorch进行训练和测试时,务必注意将实例化的模型指定为train/eval模式。eval模式下,BN和DropOut会被固定,不会取平均值,而是使用训练好的值。否则,一旦test的batch_size过小,结果会非常不准。
使用PyTorch进行训练和测试时一定注意要把实例化的model指定train/eval,eval()时,框架会自动把BN和DropOut固定住,不会取平均,而是用训练好的值,不然的话,一旦test的batch_size过小,很容易就会被BN层导致生成图片颜色失真极大!!!!!!
Class Inpaint_Network() ...... Model = Inpaint_Nerwoek() #train: Model.train(mode=True) ..... #test: Model.eval()
model.train()
启用 BatchNormalization 和 Dropout
model.eval()
不启用 BatchNormalization 和 Dropout
训练完train样本后,生成的模型model要用来测试样本。

