【发布时间】:2022-01-01 00:11:56
【问题描述】:
我已经看到大多数教程/指南在 epoch 循环之外都有验证步骤。我遵循的指南在 epoch 循环中包含验证步骤。哪个是对的?
我注意到,如果您在 epoch 循环中进行了验证,您可以绘制每个 epoch 损失的验证,但是您不能有一个适当的混淆矩阵(由于再次验证相同的图像数据集),反之亦然。或者我还没有找到合适的方法。有什么建议吗?
谢谢
【问题讨论】:
标签: validation deep-learning pytorch
我已经看到大多数教程/指南在 epoch 循环之外都有验证步骤。我遵循的指南在 epoch 循环中包含验证步骤。哪个是对的?
我注意到,如果您在 epoch 循环中进行了验证,您可以绘制每个 epoch 损失的验证,但是您不能有一个适当的混淆矩阵(由于再次验证相同的图像数据集),反之亦然。或者我还没有找到合适的方法。有什么建议吗?
谢谢
【问题讨论】:
标签: validation deep-learning pytorch
在 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 创建的,具体取决于您的交叉验证策略(随机拆分、分层拆分等)
【讨论】: