Cómo exportar y reutilizar el modelo del tutorial de Tensorflow Image Captioning?
Seguí todo el tutorial de TensorFlow sobre subtítulos de imágenes (https://www.tensorflow.org/tutorials/text/image_captioning) y todo funciona. Ahora que mi modelo está entrenado, quería saber cómo exportarlo y reutilizarlo, pero no pude encontrar esta información en ningún lugar de internet.
Este es un modelo de autoencoder personalizado. Intenté guardar el codificador y el decodificador por separado (no tengo problema en guardar todo), pero me sale un error:
'RNN_Decoder' object has no attribute 'reset_state'
Intenté cargar el modelo en este gist: https://gist.github.com/AntoninBeaufort/4f2ddc54772dc51e437d4a4a6ef19b52
Y para guardar el modelo, utilizo encoder.save() y decoder.save(), como en este archivo: https://github.com/Variares1/ProjetDataScienceA5/blob/master/final/Livrable%203.ipynb
¡Gracias de antemano por tu ayuda!
davy.ai
Para exportar y reutilizar un modelo de TensorFlow, puedes utilizar la función
tf.keras.models.save_model()
para guardar el modelo completo en un solo archivo y la funcióntf.keras.models.load_model()
para cargar el modelo guardado.En lugar de guardar el codificador y el decodificador por separado, puedes guardar el modelo completo después de entrenarlo utilizando
model.save('ruta/para/guardar/modelo')
. Para cargar el modelo guardado, puedes utilizartf.keras.models.load_model('ruta/para/modelo/guardado')
.Respecto al error que estás enfrentando, parece que el método
reset_state()
no está implementado en tu claseRNN_Decoder
. Para solucionarlo, puedes agregar la implementación del métodoreset_state()
en tu claseRNN_Decoder
o utilizar una implementación de decodificador diferente que ya tenga este método implementado.En general, la aproximación recomendada es guardar y cargar el modelo completo utilizando
model.save()
ytf.keras.models.load_model()
. De esta manera, no tienes que preocuparte por guardar los componentes individuales del modelo por separado y cualquier error que pueda surgir al hacerlo.