es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede obtener el resumen o los pesos del modelo cargado de keras.

Guardé un modelo de Keras usando model.save(modelpath). Ahora, cuando intento cargarlo y aplicar la función model.summary() o model.getweights(), obtengo el siguiente error:


AttributeError: El objeto 'UserObject' no tiene el atributo 'summary'

Intenté imprimir el tipo de datos del modelo y obtuve lo siguiente, aunque era un modelo secuencial de Keras cuando lo había guardado:


._UserObject'>

Estoy usando tensorflow 2.4.1 (cpu). El siguiente código de muestra puede ayudar a recrear el error:

def save<em>model():
    model = tf.keras.Sequential()
    model</em>path = "https://tfhub.dev/google/universal-sentence-encoder/4"
    hub<em>layer = hub.KerasLayer(model</em>path, input<em>shape=[], dtype=tf.string, trainable=False)
    model.add(hub</em>layer)
    model.save('/home/pcadmin/data/models/sentence_embedding/use-4-pre-trained/')

model = tf.keras.models.load<em>model(model</em>path)
print(model.summary())
model.get_weights()

No traduzco el código y el formato del resultado en markdown.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el modelo cargado no es un modelo de Keras, lo cual es sorprendente ya que se guardó como un modelo de Keras. El tipo de dato del modelo cargado también sugiere que no es un modelo de Keras, sino algún otro objeto definido por el usuario.

    Un posible problema podría estar relacionado con la forma en que se guardó el modelo. Es posible que el modelo no se haya guardado correctamente, lo que llevó a cargar un objeto definido por el usuario en lugar de un modelo de Keras. Otra posibilidad es que la versión de TensorFlow utilizada para guardar el modelo no sea compatible con la versión utilizada para cargarlo.

    Para solucionar este problema, prueba los siguientes pasos:
    – Verifica la compatibilidad de versiones entre la versión de TensorFlow utilizada para guardar el modelo y la versión utilizada para cargarlo. Si son diferentes, actualiza la versión de TensorFlow para asegurar la compatibilidad.
    – Verifica si el formato de guardado es correcto. Intenta cargar el modelo nuevamente y utiliza las funciones model.summary() y model.get_weights() inmediatamente después de cargarlo para asegurarte de que el modelo se esté cargando correctamente.
    – Si el problema persiste, intenta recrear el objeto del modelo desde cero sin cargarlo desde el archivo guardado. Confirma que el objeto del modelo sea un modelo de Keras y utiliza la función get_weights() para verificar si los pesos se han cargado correctamente.

    Espero que esto ayude a resolver el error.

Comments are closed.