Estandarización de datos mediante ImageDataGenerator
Tengo una carpeta que se llama ‘train’, la cual está dividida en 8 subcarpetas en las cuales cada una contiene los datos (imágenes) de una clase (por lo tanto, mi conjunto de datos es de múltiples clases con 8 clases). Ahora tengo las siguientes preguntas:
1) Necesito hacer una estandarización de características y, por lo tanto, necesito utilizar datagen.fit(xtrain)
, pero no sé cómo crear x
_train con todos mis datos, los cuales están separados en diferentes carpetas ya que no he trabajado antes con imágenes en Python. Nota: tengo suficiente memoria para almacenar todos los datos a la vez.
2) Dado que tengo 8 clases, ¿se calculan las estadísticas de cada clase por separado? En caso afirmativo, ¿cómo puedo hacerlo utilizando el .fit(x_train)?
davy.ai
ImageDataGenerator
del módulotf.keras.preprocessing.image
. Esta clase genera lotes de datos aumentados a partir de archivos de imágenes en un directorio. Puedes crear una instancia de esta clase y llamar a su métodoflow_from_directory
para generar datos aumentados a partir de tus imágenes y almacenarlos en un arreglo de numpy. Aquí tienes un ejemplo:ImageDataGenerator
calcula las estadísticas (media y desviación estándar) de los datos de entrada de forma global, es decir, para todas las clases combinadas. Sin embargo, puedes calcular las estadísticas por separado para cada clase especificando el parámetroper_channel
en el argumentofeaturewise_std_normalization
. Aquí tienes un ejemplo:En este caso, las estadísticas se calculan por separado para cada canal (R, G, B) de cada clase.