Pytorch: [Kleiner Fehler] Pylint E1101 Modul „Torch“ hat kein „from_numpy“-Mitglied

Erstellt am 8. Feb. 2017  ·  14Kommentare  ·  Quelle: pytorch/pytorch

Sehr gering, aber erwähnenswert.

Pylint greift nicht auf, dass torch die Mitgliedsfunktion from_numpy hat. Das liegt daran, dass torch.from_numpy für Pylint eigentlich torch._C.from_numpy ist.

Laut diesem Stackoverflow-Thread leidet auch numpy unter diesem Problem.

Als Referenz können Sie Pylint veranlassen, diese zu ignorieren, indem Sie "problematische" Aufrufe mit den folgenden Kommentaren umschließen.

# pylint: disable=E1101
tensor = torch.from_numpy(np_array)
# pylint: enable=E1101
todo

Hilfreichster Kommentar

generierte-Mitglieder=numpy. ,Fackel.

Für diejenigen, die vscode verwenden, fügen Sie sie zu den Benutzereinstellungen hinzu

"python.linting.pylintArgs": [
"--errors-only",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

„errors-only“ hat nichts mit dem Problem zu tun, ist aber nützlich, um pep 8/Formatierung von „Fehlern“ zu unterdrücken, wenn Sie möchten

Alle 14 Kommentare

Die Problemumgehung scheint ziemlich hässlich zu sein. Gibt es keine Möglichkeit, pylint anzuweisen, bestimmte Fehler zu filtern?

Ich darf hinzufügen, dass pylint (1.6.5) cat , topk und masked_select auch nicht als Elementfunktionen aufnimmt.

Ich glaube nicht, dass wir das beheben werden. (Ich weiß auch nicht, ob es eine Möglichkeit gibt, es zu tun).

Sie können alle diese Meldungen für diese Module unterdrücken, indem Sie die entsprechenden Zeilen von .pylintrc wie folgt bearbeiten:

[MASTER]
extension-pkg-whitelist=numpy,torch

[TYPECHECK]
ignored-modules=numpy,torch
ignored-classes=numpy,torch

mypy scheint in der Lage zu sein, diese Mitglieder abzuholen.

Anstatt zu ignorieren, können Sie jetzt Folgendes tun:

[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.*

generierte-Mitglieder=numpy. ,Fackel.

Für diejenigen, die vscode verwenden, fügen Sie sie zu den Benutzereinstellungen hinzu

"python.linting.pylintArgs": [
"--errors-only",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

„errors-only“ hat nichts mit dem Problem zu tun, ist aber nützlich, um pep 8/Formatierung von „Fehlern“ zu unterdrücken, wenn Sie möchten

Es wäre schön, die Inspektion des Moduls zu ermöglichen, auch für die automatische Vervollständigung. Vielleicht könnte man from torch._C import * in from torch._C import from_numpy, ... ändern?

Vielleicht könnte man from torch._C import * in from torch._C import from_numpy, ... ändern?

Dies scheint einfach genug. Sind wir sicher, dass dies der richtige Weg ist?
Ich dachte, wir bräuchten Typhinweise (was viel schwieriger wäre, die Leute davon zu überzeugen, sie zu verwenden).
Sollten wir ein weiteres Thema eröffnen, um die Lösung von @moi90 zu diskutieren?

generate-members=numpy._,torch._

Für diejenigen, die vscode verwenden, fügen Sie sie zu den Benutzereinstellungen hinzu

"python.linting.pylintArgs": [
"--errors-only",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

„errors-only“ hat nichts mit dem Problem zu tun, ist aber nützlich, um pep 8/Formatierung von „Fehlern“ zu unterdrücken, wenn Sie möchten

Du hast einen Teil meines Lebens gerettet! hahaha

Auf VS-Code:
Das Hinzufügen "python.linting.enabled": false hat in diesem Fall auch funktioniert.

Das vollständige Deaktivieren von Linting (wie von @miranthajayatilake vorgeschlagen) ist keine gute Lösung. Scheint pylint hat Probleme mit Pytorch, aber für mich funktioniert flake8 gut.
In VS Code kann man flake8 durch Ctrl + Shift + P -> Select linter -> flake8 auswählen.

Ich glaube nicht, dass wir das beheben werden. (Ich weiß auch nicht, ob es eine Möglichkeit gibt, es zu tun).

Das Schließen von Problemen mit „Ich weiß nicht, wie ich es also nicht tun soll“ ist sehr ungezogen.

generate-members=numpy._,torch._

Für diejenigen, die vscode verwenden, fügen Sie sie zu den Benutzereinstellungen hinzu

"python.linting.pylintArgs": [
"--errors-only",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

„errors-only“ hat nichts mit dem Problem zu tun, ist aber nützlich, um pep 8/Formatierung von „Fehlern“ zu unterdrücken, wenn Sie möchten

Wenn Sie Coc verwenden, können Sie dieselbe Regel in Ihre coc-settings.json einfügen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

a1363901216 picture a1363901216  ·  3Kommentare

cdluminate picture cdluminate  ·  3Kommentare

dablyo picture dablyo  ·  3Kommentare

miguelvr picture miguelvr  ·  3Kommentare

eliabruni picture eliabruni  ·  3Kommentare