Keras AttributeError: ‘Sequential’ object has no attribute ‘predict_classes’


Im attempting to find model performance metrics (F1 score, accuracy, recall) following this guide

This exact code was working a few months ago but now returning all sorts of errors, very confusing since i havent changed one character of this code. Maybe a package update has changed things?

I fit the sequential model with, then used model.evaluate to find test accuracy. Now i am attempting to use model.predict_classes to make class predictions (model is a multi-class classifier). Code shown below:

model = Sequential()
model.add(Dense(24, input_dim=13, activation='relu'))
model.add(Dense(18, activation='relu'))
model.add(Dense(6, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])


history =, y_train, batch_size = 256, epochs = 10, verbose = 2, validation_split = 0.2)


score, acc = model.evaluate(X_test, y_test,verbose=2, batch_size= 256)
print('test accuracy:', acc)


yhat_classes = model.predict_classes(X_test)

last line returns error "AttributeError: ‘Sequential’ object has no attribute ‘predict_classes’"

This exact code was working not long ago so struggling a bit, thanks for any help


This function were removed in TensorFlow version 2.6.
According to the keras in rstudio reference

update to


Or use TensorFlow 2.5 or later.

If you are using TensorFlow version 2.5, you will receive the following warning: UserWarning: model.predict_classes() is deprecated and will be removed after 2021-01-01. Please use instead:* np.argmax(model.predict(x), axis=-1), if your model does multi-class classification (e.g. if it uses a softmax last-layer activation).* (model.predict(x) > 0.5).astype("int32"), if your model does binary classification (e.g. if it uses a sigmoid last-layer activation).


Leave a Reply

Your email address will not be published. Required fields are marked *