Pytorch深度学习-验证应该在epoch循环内部还是外部



我见过大多数教程/指南在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_dataloaderval_dataloader是根据您的交叉验证策略(随机分割、分层分割等(从train_dataset创建的

最新更新