非常にマイナーですが、言及する価値があります。
Pylintは、 torch
にメンバー関数from_numpy
があることを認識していません。 これは、Pylintに関する限り、 torch.from_numpy
が実際にはtorch._C.from_numpy
であるためです。
このstackoverflowスレッドによると、 numpy
もこの問題に悩まされています。
参考までに、「問題のある」呼び出しを次のコメントでラップすることにより、Pylintにこれらを無視させることができます。
# pylint: disable=E1101
tensor = torch.from_numpy(np_array)
# pylint: enable=E1101
回避策はかなり醜いようです。 特定のエラーをフィルタリングするようにpylintに指示する方法はありませんか?
pylint(1.6.5)は、メンバー関数としてcat
、 topk
、およびmasked_select
も取得しないことを付け加えておきます。
これを修正するとは思わない。 (私もそれを行う方法があるかどうかわかりません)。
.pylintrc
の適切な行を次のように編集することにより、これらのモジュールのこのようなメッセージをすべて抑制することができます。
[MASTER]
extension-pkg-whitelist=numpy,torch
[TYPECHECK]
ignored-modules=numpy,torch
ignored-classes=numpy,torch
mypyはこれらのメンバーをピックアップできるようです。
無視する代わりに、次のことができるようになりました。
[TYPECHECK]
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=numpy.*,torch.*
生成されたメンバー= numpy。 、松明。
vscodeを使用している場合は、ユーザー設定に追加してください
"python.linting.pylintArgs":[
「-エラーのみ」、
"--generated-members = numpy。*、torch。*、cv2。*、cv。*"
]
エラーのみは問題に対応していませんが、必要に応じてpep 8 /フォーマットの「エラー」をサポートするのに役立ちます
オートコンプリートについても、モジュールの検査を許可すると便利です。 たぶん、 from torch._C import *
をfrom torch._C import from_numpy, ...
に変更できますか?
たぶん、
from torch._C import *
をfrom torch._C import from_numpy, ...
に変更できますか?
これは十分に単純なようです。 これが進むべき道だと確信していますか?
タイプヒントが必要だと思いました(これは、人々に使用を説得するのがはるかに難しいでしょう)。
@ moi90の解決策について話し合うために、別の問題を開く必要がありますか?
生成されたメンバー= numpy ._、torch._
vscodeを使用している場合は、ユーザー設定に追加してください
"python.linting.pylintArgs":[
「-エラーのみ」、
"--generated-members = numpy。*、torch。*、cv2。*、cv。*"
]エラーのみは問題に対応していませんが、必要に応じてpep 8 /フォーマットの「エラー」をサポートするのに役立ちます
あなたは私の人生の一部を救った! ハハハッハッハ
VSコードの場合:
この場合、 "python.linting.enabled": false
の追加も機能しました。
( @miranthajayatilakeによって提案されているように)リンティングをすべて一緒に無効にすることは、良い解決策ではありません。 pylint
にはpytorchに問題があるようですが、私にとってflake8
はうまく機能します。
VS Codeでは、 flake8
by Ctrl + Shift + P
-> Select linter
-> flake8
を選択できます。
これを修正するとは思わない。 (私もそれを行う方法があるかどうかわかりません)。
「どうしたら行けないのかわからない」という締めくくりはとてもやんちゃです。
生成されたメンバー= numpy ._、torch._
vscodeを使用している場合は、ユーザー設定に追加してください
"python.linting.pylintArgs":[
「-エラーのみ」、
"--generated-members = numpy。*、torch。*、cv2。*、cv。*"
]エラーのみは問題に対応していませんが、必要に応じてpep 8 /フォーマットの「エラー」をサポートするのに役立ちます
Cocを使用している場合は、coc-settings.jsonに同じルールを設定することを使用できます。
最も参考になるコメント
vscodeを使用している場合は、ユーザー設定に追加してください
"python.linting.pylintArgs":[
「-エラーのみ」、
"--generated-members = numpy。*、torch。*、cv2。*、cv。*"
]
エラーのみは問題に対応していませんが、必要に応じてpep 8 /フォーマットの「エラー」をサポートするのに役立ちます