在训练模型时中加入:model.train()
在测试模型时加入:model.eval()
a)model.eval():不启用BatchNormalization和Dropout。此时pytorch会自动把BN和DropOut固定住,不会取平均,而是用训练好的值。不然的话,一旦test的batch_size过小,很容易就会因BN层导致模型performance损失较大;
b) model.train() :启用 BatchNormalization 和 Dropout。 在模型测试阶段使用model.train() 让model变成训练模式,此时 dropout和batch normalization的操作在训练q起到防止网络过拟合的问题。
【Pytorch】中的net.train()和net.eval()
最新推荐文章于 2024-10-05 12:00:56 发布