No se puede importar Keras (desde TensorFlow 2.0) en PyCharm

8

Acabo de instalar la versión estable de TensorFlow 2.0 (lanzada el 1 de octubre de 2019) en PyCharm.

El problema es que el paquete keras no está disponible . No se pueden importar keras

El error real es:

" no se puede importar el nombre 'keras' del tensorflow "

He instalado a través de pip install tensorflow==2.0.0la CPU version, y luego desinstalado la versión de la CPU y la GPU instalada la versión, a travéspip install tensorflow-gpu==2.0.0.

Ninguna de las versiones anteriores trabajadas de TensorFlow funcionaba correctamente (no podía importar keras u otros paquetes a través de from tensorflow.package_X import Y).

Si revierto TensorFlow a la versión 2.0.0.b1 , keras está disponible como un paquete (PyCharm lo reconoce) y todo funciona sin problemas.

¿Hay alguna manera de resolver este problema? ¿Estoy cometiendo un error en el proceso de instalación?

ACTUALIZACIÓN --- Importar desde la Consola Python funciona y permite las importaciones sin ningún error. Escribir desde la consola funciona

Timbus Calin
fuente
1
Lo instalé hoy y funciona bien. Utilicé pip install tensorflow-gpu.
Mukul
En lugar de proporcionar alguna captura de pantalla que realmente no muestre nada, debe proporcionar una pieza de código real que falle y muestre el problema. Tal vez solo estés importando cosas de la manera incorrecta.
xdurch0
La captura de pantalla está destinada a demostrar que PyCharm ni siquiera puede ver el paquete keras dentro de TensorFlow. El error es "no se pueden importar keras del flujo de tensor --- No se pueden encontrar keras de módulo"
Timbus Calin el
Parece ser un error de PyCharm IDE, por lo que he leído sobre temas separados abiertos en GitHub y en PyCharm: intellij-support.jetbrains.com/hc/en-us/community/posts/…
Timbus Calin
1
Ok, perdón por parecer un poco grosero, simplemente no entendí cuál era el problema. Me alegra que hayas podido (más o menos) resolverlo.
xdurch0

Respuestas:

10

Para usuarios de PyCharm

Para aquellos que usan PyCharm. Instale la versión futura (EAP) 2019.3 EAP build 193.3793.14desde aquí . Con eso, podrá utilizar el autocompletado para la versión estable actual de TensorFlow (es decir, 2.0). Lo he probado y funciona :).

Para otros IDEs

Para los usuarios con otros IDEs, esto se resolverá solo después de que se lance la versión estable, que de todos modos es el caso ahora. Pero esto podría tomar más tiempo para solucionarlo. Mira el comentario aquí . Supongo que será prudente esperar y seguir usando version 2.0.0.b1. Por otro lado, evite las importaciones de tensorflow_coresi no desea refactorizar su código en el futuro.

Nota: para que el autocompletado funcione, use la declaración de importación como se muestra a continuación

import tensorflow.keras as tk

# this does not work for autocomplete 
# from tensorflow import keras as tk  

El autocompletado funciona para TensorFlow 2.0.0 en la versión de CPU, pero el autocompletado no funciona para la versión de GPU.

Praveen Kulkarni
fuente
Sí, también esperaría hasta que PyCharm solucione este problema. Gracias por el comentario.
Timbus Calin el
2

RESUELTO --- Vea las respuestas a este problema a continuación.

SOLUCIÓN 1 (mejor solución)

Es la respuesta aceptada proporcionada anteriormente. Funciona en la versión EAP, lo probé en varias máquinas con Windows.

SOLUCIÓN 2

Aunque PyCharm no reconoce los módulos, funciona el archivo .py. Todavía no sé si este es un problema de TensorFlow o PyCharm, pero esta es la solución que he encontrado, muchas personas se han encontrado con este problema.

PyCharm no ve las importaciones, las considera error

ingrese la descripción de la imagen aquí

SOLUCIÓN 3

Importe los módulos desde en tensorflow_corelugar detensorflow

Ejemplo: from tensorflow_core.python.keras.preprocessing.image import ImageDataGenerator

Sin embargo, como lo menciona @Nagabhushan SN en el comentario a continuación y en la respuesta aceptada:

Por otro lado, evite las importaciones de tensorflow_core si no desea refactorizar su código en el futuro.

ingrese la descripción de la imagen aquí

Timbus Calin
fuente
No agrega nada sobre la respuesta aceptada
Nagabhushan SN
1
La respuesta fue editada, en el sentido de que expliqué explícitamente que la mejor solución se agregó anteriormente.
Timbus Calin el
1
Esta bien perdón. Culpa mía. Si puede hacer un cambio menor, eliminaré el voto
negativo
1
Además, como se menciona en la respuesta de Praveen Kulkarni, le sugiero que agregue la siguiente advertencia para la tercera solución: On the other hand avoid imports from tensorflow_core if you do not want to refactor your code in the future.puede proporcionar un enlace a su respuesta: stackoverflow.com/a/58192020/3337089
Nagabhushan SN
1
Agregué el comentario según lo solicitado, gracias.
Timbus Calin el