我是 Pytorch 和机器学习的新手,我在本教程https://www.learnopencv.com/image-classification-using-transfer-learning-in-pytorch/中遵循本教程并使用我的自定义数据集。然后我在本教程中遇到了同样的问题,但我不知道如何在 pytorch 中提前停止,如果没有创建提前停止过程,你是否有更好的方法请告诉我。
问问题
6057 次
2 回答
3
这就是我在每个时代所做的
val_loss += loss
val_loss = val_loss / len(trainloader)
if val_loss < min_val_loss:
#Saving the model
if min_loss > loss.item():
min_loss = loss.item()
best_model = copy.deepcopy(loaded_model.state_dict())
print('Min loss %0.2f' % min_loss)
epochs_no_improve = 0
min_val_loss = val_loss
else:
epochs_no_improve += 1
# Check early stopping condition
if epochs_no_improve == n_epochs_stop:
print('Early stopping!' )
loaded_model.load_state_dict(best_model)
不知道它有多正确(我从另一个网站的帖子中获取了大部分代码,但忘记了在哪里,所以我不能放参考链接。我只是稍微修改了一下),希望你觉得它有用,在案例我错了,请指出错误。谢谢
于 2020-05-30T09:35:40.743 回答
0
试试下面的代码。
# Check early stopping condition
if epochs_no_improve == n_epochs_stop:
print('Early stopping!' )
early_stop = True
break
else:
continue
break
if early_stop:
print("Stopped")
break
于 2020-02-13T03:53:58.670 回答