有没有一种方法可以区分AllenNLP中的验证和评估



有时我们可能希望在验证(即,在训练期间对开发集进行验证(和最终评估期间有一些细微的不同行为。我不确定是否有一种简单的方法来通知我们的模型是由train命令还是evaluate命令调用的。现在我所能做的只是使用self.training来区分它们与训练,但验证和评估都有self.training == False,这使我无法区分它们。我的意思是,如果这是我自己的pytorch框架,那就非常容易做到,因为我可以编写自己的训练和评估方法,但在AllenNLP中,它们都是框架代码的一部分,我真的不想修改。有简单的方法吗?

您可以尝试覆盖Modelfrom_archive()方法来设置一个标志,类似于self._training = False

最新更新