如何解决Pytorch-lightning 中的“on_validation_epoch_end”和“validation_epoch_end”有什么区别?
在 LightningModule
中,Pycharm 允许 2 种自动完成方法:
class MyModel(LightningModule):
def on_validation_epoch_end(self):
def validation_epoch_end(self,outs):
在 on_validation_epoch_end
中引用了 hooks.py
def on_validation_epoch_end(self) -> None:
"""
Called in the validation loop at the very end of the epoch.
"""
# do something when the epoch ends
和
validation_epoch_end
将 evaluation_loop.py
称为 eval_results = model.validation_epoch_end(eval_results)
,导致 __run_eval_epoch_end
。
每一个的目的是什么?
我只能假设一个已被弃用。找不到任何相关文档。
解决方法
Here 是一个伪代码,显示何时调用钩子,我认为它非常明确地表明你是对的:这两个函数是多余的(字面上用相同的参数在同一个地方调用)和我会说 validation_epoch_end
在这里被视为已弃用,因为文档中没有提到它,而对钩子(形式为 on_event_start/end
)进行了广泛的解释
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。