有谁能够解决PyCharm中特定于PyTorch的检查问题?以前有关非PyTorch的问题的帖子建议升级PyCharm,但我目前是最新版本。一种选择当然是完全禁用某些检查,但是我宁愿避免这种情况。
示例:torch.LongTensor(x)
给我“意外参数...”,而两个调用签名(带有和不带有x
)都受支持。
最佳答案
我相信这是因为torch.LongTensor
没有pycharm可以找到的__init__
方法。
根据this source的发现,我对this SO post表示感谢:
由于Tensor
是类型,因此仅定义new
而不定义init
是有意义的。
您可以通过测试以下类来试验这种行为:
torch.LongTensor(1) # Unexpected arguments
发出警告,但以下情况不发出。
class MyLongTensor(torch.LongTensor):
def __init__(self, *args, **kwargs):
pass
MyLongTensor(1) # No error
要确认是否缺少
__init__
是罪魁祸首,请尝试:class Example(object):
pass
Example(0) # Unexpected arguments
要自己找出答案,请使用pycharm在
Ctrl+click
上先LongTensor
,然后在_TensorBase
上查找定义的方法。