Ricardokevins / Bert-In-Relation-Extraction

使用Bert完成实体之间关系抽取
648 stars 74 forks source link

demo.py报错 #18

Closed lxanas closed 2 years ago

lxanas commented 2 years ago

使用python3.7+readme中给的环境要求 运行main.py正常,运行demo.py 第79行报错,提示mask问题 outputs = net(indexed_tokens, mask=att_mask) 改为outputs = net(indexed_tokens, attention_mask=att_mask)后,解决

但是81行 logits = outputs[1]报错 IndexError: tuple index out of range

Ricardokevins commented 2 years ago

使用python3.7+readme中给的环境要求 运行main.py正常,运行demo.py 第79行报错,提示mask问题 outputs = net(indexed_tokens, mask=att_mask) 改为outputs = net(indexed_tokens, attention_mask=att_mask)后,解决

但是81行 logits = outputs[1]报错 IndexError: tuple index out of range

你运行demo的时候,用的是否是我提供的模型文件,还是你自己训练保存的文件

lxanas commented 2 years ago

载入的模型是从百度云下载的95.37%正确率的模型

Ricardokevins commented 2 years ago

载入的模型是从百度云下载的95.37%正确率的模型

这个应该是因为我之前保存的(现在公开的)模型的定义代码(model.py)发生了修改,因此现在的forward设定和 加载模型的forward不同,稍等一会,我想想怎么修复这个问题。

Ricardokevins commented 2 years ago

载入的模型是从百度云下载的95.37%正确率的模型

尝试一下,把demo.py回退到这里的test.py,应该就可以用旧模型了。 假如要用自己训练的模型就用新版的demo.py进行测试。 https://github.com/Ricardokevins/Bert-In-Relation-Extraction/commit/88287a6f668892e774c0b7c08ae2a3f165f19ad3

之前优化代码的时候,忘记适配旧版本的模型了 我还在下载那个模型(本地版本早就删了),后续(1-2天)会想办法修复这个问题

Ricardokevins commented 2 years ago

我暂时commit了旧版的test.py 你可以重新拉取一下试试

lxanas commented 2 years ago

感谢解答,使用test.py可以运行。但是我尝试用demo.py加载自己训练出来的模型报的错更多了TAT

Ricardokevins commented 2 years ago

感谢解答,使用test.py可以运行。但是我尝试用demo.py加载自己训练出来的模型报的错更多了TAT

我clone了仓库,并尝试了一下保存模型,并在demo.py 中加载,应该是没有问题,最多报错 “没有dev.json",这个错误你只要自己指定一个就行,这个错误是在calculate acc里,需要用验证集

你可以尝试自己解决一下问题,实在解决不了再在issue里反馈

Ricardokevins commented 2 years ago

你好,我已经修复了所有的BUG,现在可以demo可以兼容新模型和旧模型,我在服务器上可以流畅的使用,欢迎pull新的代码使用,没有别的问题我就要关闭issue了