• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

223
Views
Keras AttributeError: el objeto 'secuencial' no tiene atributo 'predict_classes'

Estoy tratando de encontrar métricas de rendimiento del modelo (puntuación F1, precisión, recuperación) siguiendo esta guía https://machinelearningmastery.com/how-to-calculate-precision-recall-f1-and-more-for-deep-learning-models/

Este código exacto funcionaba hace unos meses pero ahora devuelve todo tipo de errores, muy confuso ya que no he cambiado un carácter de este código. ¿Quizás una actualización de paquete ha cambiado las cosas?

Ajusté el modelo secuencial con model.fit, luego usé model.evaluate para encontrar la precisión de la prueba. Ahora estoy intentando usar model.predict_classes para hacer predicciones de clase (el modelo es un clasificador de varias clases). Código que se muestra a continuación:

 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 = model.fit(X_train, 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)

la última línea devuelve el error "AttributeError: el objeto 'secuencial' no tiene el atributo 'predict_classes'"

Este código exacto funcionaba no hace mucho, así que tuve problemas, gracias por cualquier ayuda.

about 3 years ago · Santiago Trujillo
3 answers
Answer question

0

Esta función se eliminó en TensorFlow versión 2.6. Según la referencia de keras en rstudio

actualización para

 predict_x=model.predict(X_test) classes_x=np.argmax(predict_x,axis=1)

O use TensorFlow 2.5 o posterior.

Si está utilizando la versión 2.5 de TensorFlow, recibirá la siguiente advertencia:

tensorflow\python\keras\engine\secuential.py:455: UserWarning: model.predict_classes() está en desuso y se eliminará después del 01-01-2021. Utilice en su lugar:* np.argmax(model.predict(x), axis=-1) , si su modelo realiza una clasificación multiclase (por ejemplo, si utiliza una activación de última capa softmax ).* (model.predict(x) > 0.5).astype("int32") , si su modelo hace una clasificación binaria (por ejemplo, si usa una activación de la última capa sigmoid ).

about 3 years ago · Santiago Trujillo Report

0

Experimenté el mismo error, utilizo el siguiente código y lo conseguí.

Sustituido:

 predictions = model.predict_classess(x_test)

Con este:

 predictions = (model.predict(x_test) > 0.5).astype("int32")

Tipo de paquetes de python: Tensorflow 2.6.0

esto funciona bien

about 3 years ago · Santiago Trujillo Report

0

Podemos reemplazar la línea de código problemática con lo siguiente:

 y_predict = np.argmax(model.predict(x_test), axis=-1)
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error