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
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 *
enfrom 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.
Commentaire le plus utile
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