Extraer datos del conjunto de datos tensorflow (por ejemplo, a numpy)
Estoy cargando imágenes a través de
data = keras.preprocessing.image_dataset_from_directory(
'./data',
labels='inferred',
label_mode='binary',
validation_split=0.2,
subset="training",
image_size=(img_height, img_width),
batch_size=sz_batch,
crop_to_aspect_ratio=True
)
Quiero usar los datos obtenidos también en rutinas que no son de TensorFlow. Por lo tanto, quiero extraer los datos, por ejemplo, a arreglos numpy. ¿Cómo puedo lograr esto? No puedo usar tfds
.
davy.ai
Para extraer los datos a matrices numpy, puedes utilizar el método
as_numpy()
del objeto dataset devuelto porkeras.preprocessing.image_dataset_from_directory()
. Este método devuelve un generador que produce lotes de datos como matrices numpy.Aquí tienes un ejemplo de código para extraer los datos como matrices numpy:
En este ejemplo, primero cargamos las imágenes como un dataset de tensorflow utilizando
keras.preprocessing.image_dataset_from_directory()
. Luego, extraemos los datos a arrays numpy utilizando el métodoas_numpy_iterator()
y un bucle for. Por último, concatenamos los lotes en las matrices numpyx_data
ey_data
. El resultado dex_data
es una matriz numpy 4D de forma (num_samples, img_height, img_width, num_channels) que contiene los datos de las imágenes, mientras quey_data
es una matriz numpy 1D de forma (num_samples,) que contiene las etiquetas binarias.