pytorch 模块“torch”没有“argmax”成员(PylintE1101:没有成员)

rqdpfwrv  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(138)

我希望每个人都做得很好。请帮我解决下面的错误。
获取PylintE 1101:无成员错误

answer_start = torch.argmax(output.start_logits)
answer_end = torch.argmax(output.end_logits)

字符串
我在尝试获取开始和结束分数最高的令牌时出现此错误
有谁能纠正这个错误吗?提前感谢!

zmeyuzjn

zmeyuzjn1#

这里的问题是由于pylint linter。它不能将argmax识别为torch模块的函数。深入研究代码,我们发现这是因为argmax的实际实现在torch._C中,这是一个私有模块,在torch根目录下的__init__.py文件中公开。然而,pylint似乎没有查看这个文件来确定argmax是torch的成员。问题类似于this。请注意,这个问题不仅出现在pytorch上,也出现在其他流行的模块上,比如numpy。
正如this github issue中所建议的,您没有其他解决方案可以手动删除pylint.rc中pylint设置中的错误(如果不存在,请使用pylint --generate-rcfile > .pylintrc创建)。然后,您可以:

  • 编写以下代码以防止仅 Torch 的错误:
[TYPECHECK]
ignored-modules=torch
ignored-classes=torch

字符串

  • 写这个来删除所有模块的no-member错误(我自己做的):
[MESSAGES CONTROL]
disable=no-member

相关问题