• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

682
Vistas
Keras AttributeError: el objeto 'secuencial' no tiene atributo 'predict_classes'

Estoy tratando de encontrar métricas de rendimiento del modelo (puntaje 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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda