web-dev-qa-db-fra.com

Impossible d'importer Keras (à partir de TensorFlow 2.0) dans PyCharm

Je viens d'installer la version stable de TensorFlow 2.0 (sortie le 1er octobre 2019) dans PyCharm.

Le problème est que le package de keras n'est pas disponible . Unable to import keras

L'erreur réelle est:

" ne peut pas importer le nom 'keras' de tensorflow "

J'ai installé via pip install tensorflow==2.0.0 les CPU version, puis désinstallé la version CPU et installé la version GPU, via pip install tensorflow-gpu==2.0.0.

Aucune des versions travaillées ci-dessus de TensorFlow ne fonctionnait correctement (impossible d'importer des keras ou d'autres packages via from tensorflow.package_X import Y).

Si je rétablis TensorFlow à la version 2.0.0.b1 , keras est disponible en tant que package (PyCharm le reconnaît) et tout se passe bien.

Existe-t-il un moyen de résoudre ce problème? Suis-je en train de faire une erreur dans le processus d'installation?

MISE À JOUR --- L'importation à partir de la console Python fonctionne et permet les importations sans aucune erreur. Writing from the console works

8
Timbus Calin

Pour les utilisateurs de PyCharm

Pour ceux qui utilisent PyCharm. Installer la future version (EAP) 2019.3 EAP build 193.3793.14 de ici . Avec cela, vous pourrez utiliser la saisie semi-automatique pour la version stable actuelle de TensorFlow (c'est-à-dire 2.0). Je l'ai essayé et ça marche :).

Pour les autres IDE

Pour les utilisateurs avec d'autres IDE, cela ne sera résolu qu'après la sortie de la version stable, ce qui est de toute façon le cas maintenant. Mais cela pourrait prendre plus de temps pour une correction. Voir le commentaire ici . Je suppose qu'il sera sage d'attendre et de continuer à utiliser version 2.0.0.b1. D'autre part, évitez les importations en provenance de tensorflow_core si vous ne souhaitez pas refactoriser votre code à l'avenir.

Remarque: pour que la saisie semi-automatique fonctionne, utilisez la déclaration d'importation comme ci-dessous

import tensorflow.keras as tk

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

La saisie semi-automatique fonctionne pour TensorFlow 2.0.0 sur la version CPU, mais la saisie semi-automatique ne fonctionne pas pour la version GPU.

10
Praveen Kulkarni

RESOLU --- Voir les réponses à ce problème ci-dessous.

SOLUTION 1 (meilleure solution)

La réponse acceptée est-elle fournie ci-dessus. Il fonctionne sur la version EAP, je l'ai testé sur plusieurs machines sous Windows.

SOLUTION 2

Bien que PyCharm ne reconnaisse pas les modules, l'exécution du fichier .py fonctionne. Je ne sais toujours pas si c'est un problème de TensorFlow ou PyCharm, mais c'est la solution que j'ai trouvée, beaucoup de gens ont rencontré ce problème.

PyCharm does not see the imports, considers them error

enter image description here

SOLUTION 3

Importez les modules depuis tensorflow_core au lieu de tensorflow

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

Cependant, comme mentionné par @Nagabhushan S N dans le commentaire ci-dessous et ci-dessus dans la réponse acceptée:

D'autre part, évitez les importations de tensorflow_core si vous ne souhaitez pas refactoriser votre code à l'avenir.

enter image description here

2
Timbus Calin