原文地址:

https://www.cnblogs.com/king-lps/p/8570021.html

--------------------------------------------------------------------------------------

1. PyTorch进行训练和测试时指定实例化的model模式为:train/eval

eg:

class VAE(nn.Module):
def __init__(self):
super(VAE, self).__init__()
...
def reparameterize(self, mu, logvar):
if self.training:
std = logvar.mul(0.5).exp_()
eps = Variable(std.data.new(std.size()).normal_())
return eps.mul(std).add_(mu)
else:
return mu model = VAE()
...
def train(epoch):
model.train()
...
def test(epoch):
model.eval()

eval即evaluation模式,train即训练模式。仅仅当模型中有DropoutBatchNorm是才会有影响。因为训练时dropout和BN都开启,而一般而言测试时dropout被关闭,BN中的参数也是利用训练时保留的参数,所以测试时应进入评估模式。

在训练时,

04-25 10:49
查看更多