Keras, który nie obsługuje TensorFlow 2.0. Zalecamy użycie `tf.keras` lub alternatywnie obniżenie wersji do TensorFlow 1.14

9

Mam błąd dotyczący (Keras, który nie obsługuje TensorFlow 2.0. Zalecamy użycie tf.keraslub alternatywnie obniżenie wersji do TensorFlow 1.14.) Wszelkie zalecenia.

dzięki

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.
Dziekan
źródło

Odpowiedzi:

11

Powinieneś tylko zmienić import na górze:

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
źródło
Mam za wskazanie tego. Zrobiłem dokładnie to, co wymieniłeś. ale mam następujący błąd TypeError: __init __ () brakuje 1 wymaganego argumentu pozycyjnego: „Jednostki” Dzięki
Dean
Jest to błąd w konstrukcji warstwy gęstej, różny od dotychczasowego błędu importu (więc kod, który podałeś powyżej). Krótko mówiąc, wszystkie warstwy mają wymagany parametr jednostek, który określa liczbę neuronów. Możesz zobaczyć więcej szczegółów w dokumentacji
nickthefreak
masz na myśli jednostki = 6 jako klasyfikator warstwy wejściowej. add (Gęsty (jednostki = 6, init = „jednolity”, aktywacja = „relu”, input_dim = 11))
Dziekan
Bardziej jak classifier.add(Dense(6, init = 'uniform', activation = 'relu', input_shape = (11,))). Kształt wejściowy musi być krotką zgodnie z dokumentacją. Jest to rodzaj osobnego problemu, więc może być konieczne otwarcie nowego pytania lub sprawdzenie istniejących przykładów implementacji MLP za pomocą keras.
nickthefreak
1
Ta odpowiedź działa dla mnie.
VansFannel
3

TensorFlow 2.0+ jest kompatybilny tylko z Keras 2.3.0+, więc jeśli chcesz korzystać z Keras 2.2.5-, potrzebujesz TensorFlow 1.15.0-. Alternatywnie tak, możesz to zrobić from tensorflow.keras import ..., ale to w ogóle nie wykorzysta twojego keraspakietu i równie dobrze możesz go odinstalować.

OverLordGoldDragon
źródło
1
Istnieje duża różnica między „can” i faktycznie jest obsługiwana, tylko Keras 2.3.x obsługuje TensorFlow 2.0, więc nie zaleca się używania 2.2.5.
Matias Valdenegro
@MatiasValdenegro Dobrze, że zdanie ma drugą połowę
OverLordGoldDragon
Tak, dlatego polecam nie wspominać o częściowo obsługiwanych wersjach TF.
Matias Valdenegro
@MatiasValdenegro Jeśli coś, to wyraźnie odradza używanie K2.2.5 + TF2 - w przeciwnym razie użytkownik może uruchomić go bez błędu i myśleć, że jest w porządku. Ale w porządku, myślę, że mogę to
wyjaśnić
1
Nie, teraz znalazłem dowody na to, że Keras 2.2.5 tak naprawdę nie obsługuje TF 2.0, wystarczy spojrzeć na to zatwierdzenie , więc samo powiedzenie „może” jest w rzeczywistości błędne.
Matias Valdenegro
2

jeśli chcesz użyć tensorflow 2.0+, musisz keras 2.3+
spróbować zaktualizować swoje kamery, to działa dla mnie:

pip install -U keras

lub możesz podać wersję keras do 2.3

Hossein Hayati
źródło
1

Natrafiłem na ten sam problem. Obniżyłem moją wersję TensorFlow do wersji 1.14, używając:

!pip install tensorflow==1.14.0

Naprawiono błąd.

Kwantowy prorok
źródło
0

ten wiersz kodu w pierwszej komórce zadziałał dla mnie

% tensorflow_version 1.x

Lucas
źródło
0

Rozwiązałem problem przez uruchomienie

pip install --ignore-installed --upgrade keras
Shihs
źródło