今天在使用T5模型微调时遇见如下错误
出现错误: TypeError: optimizer_step() got an unexpected keyword argument ‘on_tpu’ 报错原因可能有两个: 通过收索博客发现问题是因为pytorch_lightning 版本没有更新, 另一个原因可能是函数optimizer_step 的问题
方法1: 更新pytorch_lightning
1.首先查看自己的版本
pip list
当前是版本为0.8.1版本, 接下来我们就升级该版本 2.输入命令更新到最新版本:
pip install --upgrade pytorch_lightning
升级成功之后再次利用 pip list 查看版本
pip list
然后运行程序看看还不会会包则会个错误,如果继续报这个错误的话
方法2: 重新定义函数optimizer_step()
1.将原来的optimizer_step() 函数注释
def optimizer_step(self, epoch, batch_idx, optimizer, optimizer_idx, second_order_closure=None):
if self.trainer.use_tpu:
xm.optimizer_step(optimizer)
else:
optimizer.step()
optimizer.zero_grad()
self.lr_scheduler.step()
2.替换为
def optimizer_step(self,
epoch=None,
batch_idx=None,
optimizer=None,
optimizer_idx=None,
optimizer_closure=None,
on_tpu=None,
using_native_amp=None,
using_lbfgs=None
):
optimizer.step(closure=optimizer_closure) // 这里面的参数可以去掉 但是不建议
optimizer.zero_grad()
self.lr_scheduler.step()
类似于这样 我是这样解决的 希望你也可以解决该问题,希望有帮助到你喔, 如果觉得有用的话记得点赞啦 参考博客: https://github.com/PyTorchLightning/pytorch-lightning/issues/5326
|