Keras (aus TensorFlow 2.0) kann nicht in PyCharm importiert werden

8

Ich habe gerade die stabile Version von TensorFlow 2.0 (veröffentlicht am 1. Oktober 2019) in PyCharm installiert.

Das Problem ist, dass das Keras-Paket nicht verfügbar ist . Keras können nicht importiert werden

Der eigentliche Fehler ist:

" Name 'Keras' kann nicht aus Tensorflow importiert werden "

Ich habe über pip install tensorflow==2.0.0die installiert CPU versionund dann die CPU-Version deinstalliert und die GPU-Version über installiertpip install tensorflow-gpu==2.0.0.

Keine der oben genannten Versionen von TensorFlow funktionierte ordnungsgemäß (Keras oder andere Pakete konnten nicht über importiert werden from tensorflow.package_X import Y).

Wenn ich TensorFlow auf Version 2.0.0.b1 zurücksetze , ist Keras als Paket verfügbar (PyCharm erkennt es) und alles läuft reibungslos.

Gibt es eine Möglichkeit, dieses Problem zu lösen? Mache ich einen Fehler bei der Installation?

UPDATE --- Der Import aus der Python-Konsole funktioniert und ermöglicht den fehlerfreien Import. Das Schreiben von der Konsole aus funktioniert

Timbus Calin
quelle
1
Ich habe heute installiert und es funktioniert gut. Ich habe pip install tensorflow-gpu verwendet.
Mukul
Anstatt einen Screenshot bereitzustellen, der eigentlich nichts zeigt, sollten Sie einen tatsächlichen Code bereitstellen, der fehlschlägt und das Problem anzeigt. Möglicherweise importieren Sie die Dinge nur falsch.
xdurch0
Der Screenshot soll zeigen, dass PyCharm nicht einmal das Keras-Paket in TensorFlow sehen kann. Der Fehler ist 'Keras können nicht aus Tensorflow importiert werden --- Modulkeras können nicht gefunden werden'
Timbus Calin
Es scheint ein Fehler der PyCharm-IDE zu sein, soweit ich über separate Probleme gelesen habe, die auf GitHub und PyCharm geöffnet wurden
Timbus Calin
1
Ok, tut mir leid, dass ich vielleicht etwas unhöflich rübergekommen bin. Ich habe einfach nicht wirklich verstanden, worum es ging. Ich bin froh, dass du es (mehr oder weniger) lösen konntest.
xdurch0

Antworten:

10

Für PyCharm-Benutzer

Für diejenigen, die PyCharm verwenden. Installieren Sie die zukünftige Version (EAP) 2019.3 EAP build 193.3793.14von hier aus . Damit können Sie Autocomplete für die aktuelle stabile Version von TensorFlow (dh 2.0) verwenden. Ich habe es versucht und es funktioniert :).

Für andere IDEs

Für Benutzer mit anderen IDEs wird dies erst behoben, nachdem die stabile Version veröffentlicht wurde, was jetzt sowieso der Fall ist. Dies kann jedoch einige Zeit in Anspruch nehmen, um das Problem zu beheben. Siehe den Kommentar hier . Ich gehe davon aus, dass es ratsam ist, zu warten und weiter zu verwenden version 2.0.0.b1. Vermeiden tensorflow_coreSie andererseits Importe von, wenn Sie Ihren Code in Zukunft nicht mehr umgestalten möchten.

Hinweis: Damit die automatische Vervollständigung funktioniert, verwenden Sie die folgende Importanweisung

import tensorflow.keras as tk

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

Die automatische Vervollständigung funktioniert für TensorFlow 2.0.0 in der CPU-Version, die automatische Vervollständigung funktioniert jedoch nicht für die GPU-Version.

Praveen Kulkarni
quelle
Ja, ich würde auch warten, bis PyCharm dieses Problem behebt. Danke für den Kommentar.
Timbus Calin
2

Gelöst --- Siehe die Antworten auf dieses Problem unten.

LÖSUNG 1 (beste Lösung)

Ist die akzeptierte Antwort oben angegeben. Es funktioniert auf EAP-Version, ich habe es auf mehreren Computern mit Windows getestet.

LÖSUNG 2

Obwohl PyCharm die Module nicht erkennt, funktioniert das Ausführen der .py-Datei. Ich weiß immer noch nicht, ob dies ein Problem von TensorFlow oder PyCharm ist, aber dies ist die Lösung, die ich gefunden habe. Viele Menschen sind auf dieses Problem gestoßen.

PyCharm sieht die Importe nicht und betrachtet sie als Fehler

Geben Sie hier die Bildbeschreibung ein

LÖSUNG 3

Importieren Sie die Module von tensorflow_corestatttensorflow

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

Wie jedoch von @Nagabhushan SN im Kommentar unten und oben in der akzeptierten Antwort erwähnt:

Vermeiden Sie andererseits Importe aus tensorflow_core, wenn Sie Ihren Code in Zukunft nicht mehr umgestalten möchten.

Geben Sie hier die Bildbeschreibung ein

Timbus Calin
quelle
Fügt
1
Die Antwort wurde tatsächlich in dem Sinne bearbeitet, dass ich ausdrücklich angegeben habe, dass die beste Lösung oben hinzugefügt wurde.
Timbus Calin
1
In Ordnung Entschuldigung. Mein Fehler. Wenn Sie eine kleine Änderung vornehmen können, werde ich die Ablehnung entfernen
Nagabhushan SN
1
Wie in der Antwort von Praveen Kulkarni erwähnt, schlage ich vor, dass Sie die folgende Warnung für die dritte Lösung hinzufügen: On the other hand avoid imports from tensorflow_core if you do not want to refactor your code in the future.Sie können einen Link zu seiner Antwort bereitstellen
Nagabhushan SN
1
Ich habe den Kommentar wie gewünscht hinzugefügt, danke.
Timbus Calin