Pytorch: [Bug mineur] Le module 'torch' de Pylint E1101 n'a pas de membre 'from_numpy'

Créé le 8 févr. 2017  ·  14Commentaires  ·  Source: pytorch/pytorch

Très mineur mais mérite d'être mentionné.

Pylint ne détecte pas que torch a la fonction membre from_numpy . C'est parce que torch.from_numpy est en fait torch._C.from_numpy en ce qui concerne Pylint.

Selon ce thread stackoverflow, numpy souffre également de ce problème.

Pour référence, vous pouvez faire en sorte que Pylint les ignore en enveloppant les appels "problématiques" avec les commentaires suivants.

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

Commentaire le plus utile

membres générés = numpy. ,torche.

Pour ceux qui utilisent vscode, ajouter aux paramètres utilisateur

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

les erreurs uniquement ne sont pas liées au problème mais sont utiles pour supprimer les "erreurs" de pep 8/formatage si vous le souhaitez

Tous les 14 commentaires

la solution de contournement semble assez laide. n'y a-t-il aucun moyen de dire à pylint de filtrer certaines erreurs?

Je peux ajouter que pylint (1.6.5) ne prend pas non plus cat , topk et masked_select comme fonctions membres.

Je ne pense pas que nous allons régler cela. (je ne sais pas s'il y a un moyen de le faire non plus).

Vous pouvez supprimer tous ces messages pour ces modules en modifiant les lignes appropriées de .pylintrc pour qu'elles ressemblent à ceci :

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

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

mypy semble être en mesure de capter ces membres.

Au lieu d'ignorer, vous pouvez maintenant faire :

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

membres générés = numpy. ,torche.

Pour ceux qui utilisent vscode, ajouter aux paramètres utilisateur

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

les erreurs uniquement ne sont pas liées au problème mais sont utiles pour supprimer les "erreurs" de pep 8/formatage si vous le souhaitez

Ce serait bien de permettre l'inspection du module, également pour l'auto-complétion. Peut-être pourrait-on changer from torch._C import * en from torch._C import from_numpy, ... ?

Peut-être pourrait-on changer from torch._C import * en from torch._C import from_numpy, ... ?

Cela semble assez simple. Sommes-nous certains que c'est la voie à suivre?
Je pensais que nous aurions besoin d'indices de type (ce qui serait beaucoup plus difficile à convaincre les gens d'utiliser).
Devrions-nous ouvrir un autre sujet pour discuter de la solution de @moi90 ?

membres générés=numpy._, torche._

Pour ceux qui utilisent vscode, ajouter aux paramètres utilisateur

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

les erreurs uniquement ne sont pas liées au problème mais sont utiles pour supprimer les "erreurs" de pep 8/formatage si vous le souhaitez

Vous avez sauvé une partie de ma vie ! hahahaha

Sur le code VS :
L'ajout "python.linting.enabled": false a également fonctionné dans ce cas.

Désactiver tous les peluches (comme suggéré par @miranthajayatilake ) n'est pas une bonne solution. Il semble pylint ait des problèmes avec pytorch mais pour moi flake8 fonctionne bien.
Dans VS Code, on peut sélectionner flake8 par Ctrl + Shift + P -> Select linter -> flake8 .

Je ne pense pas que nous allons régler cela. (je ne sais pas s'il y a un moyen de le faire non plus).

Fermer les problèmes par "Je ne sais pas comment, donc je ne vais pas" est très méchant.

membres générés=numpy._, torche._

Pour ceux qui utilisent vscode, ajouter aux paramètres utilisateur

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

les erreurs uniquement ne sont pas liées au problème mais sont utiles pour supprimer les "erreurs" de pep 8/formatage si vous le souhaitez

Si vous utilisez Coc, vous pouvez utiliser la même règle dans votre coc-settings.json.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

NgPDat picture NgPDat  ·  3Commentaires

cdluminate picture cdluminate  ·  3Commentaires

ikostrikov picture ikostrikov  ·  3Commentaires

bartolsthoorn picture bartolsthoorn  ·  3Commentaires

eliabruni picture eliabruni  ·  3Commentaires