在PyTorch中打印每个历元的验证损失
我想打印每个历元中模型的验证损失,获取和打印验证损失的正确方法是什么 是这样的吗?在PyTorch中打印每个历元的验证损失,pytorch,cross-entropy,Pytorch,Cross Entropy,我想打印每个历元中模型的验证损失,获取和打印验证损失的正确方法是什么 是这样的吗? criterion = nn.CrossEntropyLoss(reduction='mean') for x, y in validation_loader: optimizer.zero_grad() out = model(x) loss = criterion(out, y) loss.backward() optimizer.step() losses += loss display_lo
criterion = nn.CrossEntropyLoss(reduction='mean')
for x, y in validation_loader:
optimizer.zero_grad()
out = model(x)
loss = criterion(out, y)
loss.backward()
optimizer.step()
losses += loss
display_loss = losses/len(validation_loader)
print(display_loss)
还是像这样
criterion = nn.CrossEntropyLoss(reduction='mean')
for x, y in validation_loader:
optimizer.zero_grad()
out = model(x)
loss = criterion(out, y)
loss.backward()
optimizer.step()
losses += loss
display_loss = losses/len(validation_loader.dataset)
print(display_loss)
还是别的什么?谢谢。不
在任何情况下,您都不应使用验证/测试数据来训练您的模型(即调用
loss.backward()
+optimizer.step()
)
如果要验证模型,请执行以下操作:
model.eval()#处理退出/批处理规范层
损失=0
使用手电筒。无梯度()
对于验证加载程序中的x、y:
out=模型(x)#仅向前传球-无坡度!!
损失+=标准(输出,x)
#总损失-除以批次数
val_损耗=损耗/长度(验证加载程序)
请注意,optimizer
与在验证集上评估模型无关。
您不会根据验证数据更改模型-仅对其进行验证。您从未使用验证/测试数据反向支持过吗!!!!!啊,对不起,我刚刚学习了深度学习,谢谢。@rubiks-这里的主要问题是,您理解为什么不能使用验证数据进行反向支持