我见过大多数教程/指南在epoch循环之外都有验证步骤。不过,我遵循的一个指南在epoch循环中有验证步骤。哪一个是对的?
我注意到,如果你在epoch循环中进行验证,你可以绘制每个epoch损失的验证图,但你不能有一个适当的混淆矩阵(由于再次验证相同的图像数据集(,反之亦然。或者我还没有找到合适的方法。有什么建议吗?
感谢
PyTorch中编写训练、val循环的一般方法是:
for epoch in range(num_epochs):
for phase, batch in [('train', train_dataloader), ('val', val_dataloader)]:
if phase == 'train':
model.train()
train(model, batch)
else:
model.eval()
val(model, batch)
# calculate the remaining statistics appropriately
这里需要注意的一点是,train_dataloader
和val_dataloader
是根据您的交叉验证策略(随机分割、分层分割等(从train_dataset
创建的