Error module 'keras.optimizers' has no attribute 'RMSprop'
Question:
I am running this code below and it returned an error AttributeError: module ‘keras.optimizers’ has no attribute ‘RMSprop’. I download tensorflow using pip install tensorflow
.
from keras import layers
from keras import models
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu',
input_shape=(150, 150, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.summary()
from keras import optimizers
model.compile(loss='binary_crossentropy', optimizer=optimizers.RMSprop(lr=1e-4), metrics=['acc'])
Could anyone please help explain to me what’s wrong with this? Thank you for your time.
Answers:
As you said, you installed tensorflow (which includes keras) via pip install tensorflow
, and not keras directly. Installing keras via pip install keras
is not recommended anymore (see also the instructions here).
This means that keras is available through tensorflow.keras
. Instead of importing via from keras import optimizers
, you should use from tensorflow.keras import optimizers
.
You should instead write:
from tensorflow import keras
from keras import optimizers
optimizer=keras.optimizers.RMSprop(learning_rate=0.01)
It works
from keras.optimizers import rmsprop_v2
model.compile(loss='binary_crossentropy', optimizer='rmsprop')
but I don’t know why..
I faced the same error, and I avoid it by importing optimizers
like that :
from tensorflow.keras import optimizers
then I applied the RMSprop :
optimisers.RMSprop(...)
import tensorflow
from tensorflow.keras import optimizers
optimizer = tensorflow.keras.optimizers.RMSprop(lr=0.0003,decay=1e-6)
note RMSprop
vs rmsprop
I am running this code below and it returned an error AttributeError: module ‘keras.optimizers’ has no attribute ‘RMSprop’. I download tensorflow using pip install tensorflow
.
from keras import layers
from keras import models
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu',
input_shape=(150, 150, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.summary()
from keras import optimizers
model.compile(loss='binary_crossentropy', optimizer=optimizers.RMSprop(lr=1e-4), metrics=['acc'])
Could anyone please help explain to me what’s wrong with this? Thank you for your time.
As you said, you installed tensorflow (which includes keras) via pip install tensorflow
, and not keras directly. Installing keras via pip install keras
is not recommended anymore (see also the instructions here).
This means that keras is available through tensorflow.keras
. Instead of importing via from keras import optimizers
, you should use from tensorflow.keras import optimizers
.
You should instead write:
from tensorflow import keras
from keras import optimizers
optimizer=keras.optimizers.RMSprop(learning_rate=0.01)
It works
from keras.optimizers import rmsprop_v2
model.compile(loss='binary_crossentropy', optimizer='rmsprop')
but I don’t know why..
I faced the same error, and I avoid it by importing optimizers
like that :
from tensorflow.keras import optimizers
then I applied the RMSprop :
optimisers.RMSprop(...)
import tensorflow
from tensorflow.keras import optimizers
optimizer = tensorflow.keras.optimizers.RMSprop(lr=0.0003,decay=1e-6)
note RMSprop
vs rmsprop