Pytorch model.train model.eval

pytorch模型的训练和测试
在训练模型时会在前面加上:

model.train()

在测试模型时在前面使用:

model.eval()

同时发现,如果不写这两个程序也可以运行,这是因为这两个方法是针对在网络训练和测试时采用不同方式的情况,比如Batch Normalization 和 Dropout。

eval()时,pytorch会自动把BN和DropOut固定住,不会取平均,而是用训练好的值。
不然的话,一旦test的batch_size过小,很容易就会被BN层导致生成图片颜色失真极大。
model.eval(),让model变成测试模式,对dropout和batch normalization的操作在训练和测试的时候是不一样的

你可能感兴趣的:(Pytorch model.train model.eval)