model.eval()
model.eval() 作用等同于 self.train(False)
简而言之,就是评估模式。而非训练模式。
在评估模式下,batchNorm
层,dropout
层等用于优化训练而添加的网络层会被关闭,从而使得评估时不会发生偏移。
总结
在对模型进行评估时,应该配合使用with torch.no_grad()
与 model.eval()
:
loop:
model.train() # 切换至训练模式
train……
model.eval()
with torch.no_grad():
Evaluation
end loop