[Pytorch]Pytorch 细节记录(转)

时间:2023-03-09 18:04:23
[Pytorch]Pytorch 细节记录(转)

文章来源 https://www.cnblogs.com/king-lps/p/8570021.html

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

eg:

[Pytorch]Pytorch 细节记录(转)
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()
[Pytorch]Pytorch 细节记录(转)

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

在训练时,