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.

¿Se puede evitar de forma limpia la descarga automática de modelos de Keras / TensorFlow?

Keras / TensorFlow descargarán automáticamente los pesos de un modelo al instanciarlo de la siguiente manera:


from tensorflow.keras import applications
model = applications.DenseNet121()

Pero para propósitos de producción, necesito evitar este comportamiento. ¿Cómo puedo verificar de forma limpia si ese modelo ya fue descargado, para poder generar una excepción en lugar de descargarlo automáticamente? Podría, por supuesto, verificar manualmente la presencia del archivo ~/.keras/models/{model_identifier}_weights_tf_dim_ordering_tf_kernels.h5. Pero me gustaría evitar una solución sucia como esa.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una forma de verificar si los pesos del modelo ya han sido descargados es utilizando el parámetro weights al instanciar el modelo.

    Por ejemplo, en lugar de usar:

    from tensorflow.keras import applications
    model = applications.DenseNet121()

    Podemos usar:

    from tensorflow.keras import applications
    model = applications.DenseNet121(weights=None)

    Esto instanciará el modelo sin ningún peso, lo que nos permite verificar si los pesos ya están presentes o no. Luego, podemos cargar los pesos manualmente si es necesario:

    import os
    if not os.path.exists('/path/to/weights.h5'):
    raise ValueError('Los pesos del modelo no se encuentran. Por favor, descargue y guarde los pesos manualmente.')
    model.load_weights('/path/to/weights.h5')

    Este enfoque nos permite verificar de manera limpia si los pesos del modelo ya han sido descargados y evitar la descarga automática en entornos de producción.

Comments are closed.