【发布时间】:2020-10-09 09:37:53
【问题描述】:
有时我们可能希望在验证(即在训练期间对开发集进行验证)和最终评估期间出现一些细微的不同行为。我不确定是否有一种简单的方法可以告知我们的模型是由train 命令还是evaluate 命令调用的。现在我能做的只是使用self.training来区分它们和训练,但是验证和评估都有self.training == False,这使得我无法区分它们。我的意思是,如果它是我自己的 pytorch 框架,那非常容易做到,因为我可以编写自己的训练和评估方法,但在 AllenNLP 中,它们都是我不想修改的框架代码的一部分。有什么简单的方法吗?
【问题讨论】:
-
您可以通过
EpochCallback:docs.allennlp.org/v1.1.0/api/training/trainer/#epochcallback在模型中设置一个标志来指示训练已完成
标签: allennlp