Search code examples
pythonkerasdeep-learning

Could not interpret optimizer identifier: <class 'keras.optimizers.RMSprop'>


I am using Pure Keras to make some model and here is it.

from keras import models,layers,Sequential, losses,metrics,optimizers
from keras.datasets import imdb
(train_data,train_labels),(test_data,test_labels) = imdb.load_data(num_words=10000)
model = models.Sequential()
model.add(layers.Dense(16,activation='relu',input_shape=(10000,)))
model.add(layers.Dense(16,activation='relu'))
model.add(layers.Dense(1,activation='sigmoid'))
model.compile(optimizer = optimizers.rmsprop, loss = losses.binary_crossentropy,metrics=['accuracy'])
model.fit(x_train,y_train,epochs=5,batch_size=512)
results = model.evaluate(x_test,y_test)

and error I am getting is this

Could not interpret optimizer identifier: <class 'keras.optimizers.RMSprop'>

Solution

  • Main Problem is that in

    model.compile(optimizer = optimizers.rmsprop, loss = losses.binary_crossentropy,metrics=['accuracy'])
    

    mentioning the optimizer, there is no learning rate mentioned. It should be

    model.compile(optimizer = optimizers.rmsprop(0.01), loss = losses.binary_crossentropy,metrics=['accuracy'])
    

    and now it will work perfectly fine