Pytorch-lightning 中的 `on_validation_epoch_end` 和 `validation_epoch_end` 有什么区别?
What is the difference between `on_validation_epoch_end` and `validation_epoch_end` in Pytorch-lightning?
在 LightningModule
中,Pycharm 允许 2 种自动完成方法:
class MyModel(LightningModule):
def on_validation_epoch_end(self):
def validation_epoch_end(self, outs):
在 hooks.py
中引用了 on_validation_epoch_end
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
形式)被广泛解释
在 LightningModule
中,Pycharm 允许 2 种自动完成方法:
class MyModel(LightningModule):
def on_validation_epoch_end(self):
def validation_epoch_end(self, outs):
在 hooks.py
on_validation_epoch_end
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
形式)被广泛解释