net.train()和net.eval()

1、net.eval() #评估模式,就是net.train(False)。
设置之后会对前向传播相关进行过滤,会关闭dropout BN等 #如果网络本身没有BN和dropout,那就没区别了。

2、net.train()# 将模型设置为训练模式:默认参数是Train。model.train()会启动drop 和 BN,但是model.train(False)不会

3、如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model.train(),在测试时添加model.eval()。其中model.train()是保证BN层用每一批数据的均值和方差,而model.eval()是保证BN用全部训练数据的均值和方差;

转载自model.trian()及model.eval() - Parallax - 博客园

你可能感兴趣的:(深度学习,机器学习,人工智能)