Keras, die TensorFlow 2.0 nicht unterstützen. Wir empfehlen die Verwendung von "tf.keras" oder alternativ ein Downgrade auf TensorFlow 1.14

9

Ich habe einen Fehler bezüglich (Keras, das TensorFlow 2.0 nicht unterstützt. Wir empfehlen die Verwendung tf.kerasoder alternativ ein Downgrade auf TensorFlow 1.14.) Empfehlungen.

Vielen Dank

import keras
#For building the Neural Network layer by layer
from keras.models import Sequential
#To randomly initialize the weights to small numbers close to 0(But not 0)
from keras.layers import Dense

classifier=tf.keras.Sequential()

classifier.add(Dense(output_dim = 6, init = 'uniform', activation = 'relu', input_dim = 11))




RuntimeError: It looks like you are trying to use a version of multi-backend Keras that does not support TensorFlow 2.0. We recommend using `tf.keras`, or alternatively, downgrading to TensorFlow 1.14.
Dean
quelle

Antworten:

11

Sie sollten nur die Importe oben ändern müssen:

from tensorflow.python.keras.layers import Dense
from tensorflow.python.keras import Sequential

classifier = Sequential()
classifier.add(Dense(6, init = 'uniform', activation = 'relu', input_dim = 11))
nickthefreak
quelle
Ich muss darauf hinweisen. Ich habe genau das getan, was Sie aufgelistet haben. aber ich habe den folgenden Fehler TypeError: __init __ () fehlt 1 erforderliches Positionsargument: 'Einheiten' Danke
Dean
Dies ist ein Fehler in der dichten Ebenenkonstruktion, der sich von dem Importfehler unterscheidet, den Sie bisher hatten (also den oben angegebenen Code). Kurz gesagt, alle Schichten haben einen erforderlichen Einheitenparameter, der die Anzahl der Neuronen definiert. Sie können mehr Details in der Dokumentation sehen
nickthefreak
Meinen Sie Einheiten = 6 als Eingabeebenenklassifizierer.add (Dicht (Einheiten = 6, init = 'einheitlich', Aktivierung = 'relu', input_dim = 11))
Dean
Eher wie classifier.add(Dense(6, init = 'uniform', activation = 'relu', input_shape = (11,))). Die Eingabeform muss gemäß der Dokumentation ein Tupel sein. Dies ist eine Art separates Problem, daher müssen Sie möglicherweise eine neue Frage öffnen oder nach vorhandenen Beispielen für MLP-Implementierungen mit Keras suchen.
Nickthefreak
1
Diese Antwort funktioniert bei mir.
VansFannel
3

TensorFlow 2.0+ ist nur mit Keras 2.3.0+ kompatibel. Wenn Sie also Keras 2.2.5- verwenden möchten, benötigen Sie TensorFlow 1.15.0-. Alternativ können Sie dies auch tun from tensorflow.keras import ..., aber das wird Ihr kerasPaket überhaupt nicht verwenden und Sie können es genauso gut deinstallieren.

OverLordGoldDragon
quelle
1
Es gibt einen großen Unterschied zwischen "can" und wird tatsächlich unterstützt. Nur Keras 2.3.x unterstützt TensorFlow 2.0. Empfehlen Sie daher nicht, 2.2.5 damit zu verwenden.
Matias Valdenegro
@MatiasValdenegro Gut, dass dieser Satz eine zweite Hälfte enthält
OverLordGoldDragon
Ja, deshalb empfehle ich, teilweise unterstützte TF-Versionen nicht zu erwähnen.
Matias Valdenegro
@MatiasValdenegro Wenn überhaupt, wird ausdrücklich von der Verwendung von K2.2.5 + TF2 abgeraten - andernfalls kann der Benutzer es ohne Fehler ausführen und denken, dass es in Ordnung ist. Aber in Ordnung, denke ich kann es expliziter machen - Antwort aktualisiert
OverLordGoldDragon
1
Nein, jetzt habe ich Beweise dafür gefunden, dass Keras 2.2.5 TF 2.0 nicht unterstützt. Schauen Sie sich nur dieses Commit an , also ist es tatsächlich falsch, nur "can" zu sagen.
Matias Valdenegro
2

Wenn Sie verwenden möchten, tensorflow 2.0+müssen Sie keras 2.3+
versuchen, Ihre Keras zu aktualisieren, es funktioniert für mich:

pip install -U keras

oder Sie können die Keras-Version auf 2.3 angeben

Hossein Hayati
quelle
1

Ich bin auf das gleiche Problem gestoßen. Mein TensorFlow wurde wie folgt auf Version 1.14 heruntergestuft:

!pip install tensorflow==1.14.0

Der Fehler wurde behoben.

Quantenprophet
quelle
0

Diese Codezeile in der ersten Zelle hat bei mir funktioniert

% tensorflow_version 1.x.

lucas
quelle
0

Ich habe das Problem durch Ausführen behoben

pip install --ignore-installed --upgrade keras
shihs
quelle