问题:
使用PyTorch Lightning时对lr_scheduler_step定义如下:
def lr_scheduler_step(self, scheduler, metric):
scheduler.step()
出错:
TypeError: lr_scheduler_step() takes 3 positional arguments but 4 were given
解决:
出错原因是参数差异导致的,函数定义接收3个参数,但是实际调用的时候传参并不是3个,而是4个,可以在定义函数的时候使用参数列表,避免参数数量差异出错。
def lr_scheduler_step(self, scheduler, *args, **kwargs):
scheduler.step()
参考:
Error in `lr_scheduler_step()` function - LightningModule - Lightning AI