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.

GeneradorDeDatosDeImagen intercambiando rutas de imagen

Quiero implementar mi propio generador de datos personalizado para un modelo keras multi-entrada que he construido utilizando la API funcional de keras.

He leído mucho sobre la clase de secuencia y cómo puedo extender su funcionalidad de varias maneras.

Mi conjunto de datos está muy desequilibrado y contiene 3 clases.

Lo que quiero lograr es construir un generador de datos personalizado que utilice flowfromdataframe. Este dataframe contiene rutas hacia imágenes. Al restringir el número de rutas de imagen desde el directorio de la clase sobrerepresentada, puedo submuestrear con éxito y equilibrar así el conjunto de datos.

Estructura del dataframe:

Sin embargo, las imágenes restantes que dejo afuera todavía contienen información valiosa que quiero que mi modelo aprenda.

¿Es posible usar algo como un callback “onepochend” que llame a una función en mi imagedatagenerator que intercambie las rutas antiguas en el dataframe y las reemplace con nuevas rutas seleccionadas al azar?

Documentos de Keras de Callback:
https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/Callback

Documentos de la clase Generador:
https://www.tensorflow.org/api_docs/python/tf/keras/utils/Sequence

Esquematizando mi idea:

¿O tensorflow/keras tiene algo que logra esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en informática especializado en Python, TensorFlow, Keras y aprendizaje profundo, creo que tu enfoque propuesto de utilizar un generador de datos personalizado para efectuar submuestreo y equilibrar los datos, y luego utilizar una llamada de retorno para sustituir las rutas antiguas con nuevas en el marco de datos, es una solución viable.

    Keras proporciona una variedad de llamadas de retorno que se pueden utilizar para personalizar la formación o intervención en diferentes etapas del proceso de formación. Puedes explorar estas llamadas de retorno en la documentación de Keras e identificar una que se adapte mejor a tus necesidades. Una opción posible es “on_epoch_end”, que se llama al final de cada época y se puede utilizar para modificar el generador de datos.

    En cuanto a la clase de generador, la clase “Sequence” en Keras proporciona una interfaz fácil de usar para crear generadores de datos que se pueden utilizar con el método “fit_generator” para la formación del modelo. Al crear una subclase de la clase “Sequence” e implementar los métodos necesarios, se puede crear un generador de datos personalizado que se ajuste a tu caso específico.

    En resumen, se puede implementar un generador de datos personalizado en Keras para equilibrar el conjunto de datos y utilizar la llamada de retorno “on_epoch_end” para actualizarlo con rutas nuevas o diferentes a las imágenes. Keras proporciona los ganchos necesarios para crear tus propias llamadas de retorno, y la clase “Sequence” se puede utilizar como punto de partida para construir tu propio generador.

Comments are closed.