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.

Asked By: newt335

||

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.

Answered By: Daniel Lenz

You should instead write:

from tensorflow import keras
from keras import optimizers
optimizer=keras.optimizers.RMSprop(learning_rate=0.01)
Answered By: user17911402

It works

from keras.optimizers import rmsprop_v2
model.compile(loss='binary_crossentropy', optimizer='rmsprop')

but I don’t know why..

Answered By: henrylee henrylee

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(...)
Answered By: bart-khalid
import tensorflow
from tensorflow.keras import optimizers
optimizer = tensorflow.keras.optimizers.RMSprop(lr=0.0003,decay=1e-6)

note RMSprop vs rmsprop

Answered By: alex
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.