Pytorch: [Error menor] Pylint E1101 Module 'torch' no tiene miembro 'from_numpy'

Creado en 8 feb. 2017  ·  14Comentarios  ·  Fuente: pytorch/pytorch

Muy menor pero digno de mención.

Pylint no detecta que torch tiene la función de miembro from_numpy . Es porque torch.from_numpy es en realidad torch._C.from_numpy en lo que respecta a Pylint.

De acuerdo con este hilo de stackoverflow numpy también sufre este problema.

Como referencia, puede hacer que Pylint los ignore envolviendo llamadas "problemáticas" con los siguientes comentarios.

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

Comentario más útil

miembros generados = numpy. ,antorcha.

Para aquellos que usan vscode, agregue a la configuración del usuario

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

"errors-only" no está relacionado con el problema, pero es útil para suprimir pep 8/formatear "errores" si lo desea

Todos 14 comentarios

la solución parece bastante fea. ¿No hay forma de decirle a pylint que filtre ciertos errores?

Puedo agregar que pylint (1.6.5) tampoco recoge cat , topk y masked_select como funciones miembro.

No creo que arreglemos esto. (No sé si hay una manera de hacerlo tampoco).

Puede suprimir todos esos mensajes para estos módulos editando las líneas apropiadas de .pylintrc para que sean así:

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

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

mypy parece ser capaz de recoger a estos miembros.

En lugar de ignorar, ahora puedes hacer:

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

miembros generados = numpy. ,antorcha.

Para aquellos que usan vscode, agregue a la configuración del usuario

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

"errors-only" no está relacionado con el problema, pero es útil para suprimir pep 8/formatear "errores" si lo desea

Sería bueno permitir la inspección del módulo, también para el autocompletado. ¿Tal vez uno podría cambiar from torch._C import * a from torch._C import from_numpy, ... ?

¿Tal vez uno podría cambiar from torch._C import * a from torch._C import from_numpy, ... ?

Esto parece bastante simple. ¿Estamos seguros de que este es el camino a seguir?
Pensé que necesitaríamos sugerencias de tipos (que serían mucho más difíciles de convencer a las personas para que las usen).
¿Deberíamos abrir otro problema para discutir la solución de @moi90 ?

miembros generados=numpy._,torch._

Para aquellos que usan vscode, agregue a la configuración del usuario

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

"errors-only" no está relacionado con el problema, pero es útil para suprimir pep 8/formatear "errores" si lo desea

¡Me salvaste parte de la vida! jajajaja

En el código VS:
Agregar "python.linting.enabled": false también funcionó en este caso.

Deshabilitar la pelusa por completo (como lo sugiere @miranthajayatilake ) no es una buena solución. Parece que pylint tiene problemas con pytorch pero para mí flake8 funciona bien.
En VS Code, uno puede seleccionar flake8 por Ctrl + Shift + P -> Select linter -> flake8 .

No creo que arreglemos esto. (No sé si hay una manera de hacerlo tampoco).

Cerrar problemas con "No sé cómo, por lo tanto, no voy a hacerlo" es muy travieso.

miembros generados=numpy._,torch._

Para aquellos que usan vscode, agregue a la configuración del usuario

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

"errors-only" no está relacionado con el problema, pero es útil para suprimir pep 8/formatear "errores" si lo desea

Si está usando Coc, puede usar poner la misma regla en su coc-settings.json.

¿Fue útil esta página
0 / 5 - 0 calificaciones