gpt4 book ai didi

pycharm - PyCharm 中的 PyTorch 特定检查问题

转载 作者:行者123 更新时间:2023-12-04 19:30:03 26 4
gpt4 key购买 nike

有没有人能够解决 PyCharm 中 PyTorch 特定的检查问题?之前针对非 PyTorch 相关问题的帖子建议升级 PyCharm,但我目前使用的是最新版本。一种选择当然是完全禁用某些检查,但我宁愿避免这种情况。

示例:torch.LongTensor(x)给了我“意外的参数...”,而两种调用签名(有和没有 x )都受支持。

最佳答案

我相信这是因为torch.LongTensor没有 __init__ pycharm 查找的方法。

根据 this source我发现感谢 this SO post :

Use __new__ when you need to control the creation of a new instance. Use __init__ when you need to control initialization of a new instance.

__new__ is the first step of instance creation. It's called first, and is responsible for returning a new instance of your class. In contrast, __init__ doesn't return anything; it's only responsible for initializing the instance after it's been created.

In general, you shouldn't need to override __new__ unless you're subclassing an immutable type like str, int, unicode or tuple.



Tensor s 是类型,只定义 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+clickLongTensor然后 _TensorBase并查看定义的方法。

关于pycharm - PyCharm 中的 PyTorch 特定检查问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44522661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com