今天run了一下这篇Aspect Sentiment Quad Prediction as Paraphrase Generation论文的代码,遇到的都是pytorch-lightning版本问题。
首先是安装pytorch-lightning
pip3 install pytorch-lightning -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
安装完之后你会发现这个版本过高,论文代码的版本是pytorch_lightning==0.8.1
解决
第一种方式,降低版本:
pip3 install pytorch-lightning==0.8.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
第二种方式,修改代码
第一个问题:
TypeError: optimizer_step() got an unexpected keyword argument ‘on_tpu’
改成下面的代码:
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()
第二个问题:
AttributeError: can’t set attribute
改成下面:
self.save_hyperparameters(hparams)
第三个问题:
T5Tokenizer requires the SentencePiece library but it was not found in your environment.
pip3 install SentencePiece -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
版本的问题基本上解决了!剩下的就是作者代码问题了。
直接运行代码会报TypeError: read_line_examples_from_file() missing 1 required positional argument: ‘silence’
我找了一下 silence没有定义的地方并且调用read_line_examples_from_file这个方法处都没有加第二个参数,建议这样做: