Cómo agregar datos a un conjunto de datos específico en un archivo hdf5 con h5py

Estoy buscando la posibilidad de agregar datos a un conjunto de datos existente dentro de un archivo h5 usando python (h5py).

Una breve introducción a mi proyecto: trato de entrenar a una CNN utilizando datos de imágenes médicas. Debido a la gran cantidad de datos y al uso intensivo de la memoria durante la transformación de los datos a nparrays, necesitaba dividir la "transformación" en algunos fragmentos de datos -> Cargue y preprocese las primeras 100 imágenes médicas y guarde los nparrays en hdf5 archivo -> Cargue los siguientes 100 conjuntos de datos y agregue el archivo h5 existente.

Ahora intenté almacenar los primeros 100 nparrays transformados de la siguiente manera:

import h5py
from LoadIPV import LoadIPV

X_train_data, Y_train_data, X_test_data, Y_test_data = LoadIPV()

with h5py.File('.\PreprocessedData.h5', 'w') as hf:
    hf.create_dataset("X_train", data=X_train_data, maxshape=(None, 512, 512, 9))
    hf.create_dataset("X_test", data=X_test_data, maxshape=(None, 512, 512, 9))
    hf.create_dataset("Y_train", data=Y_train_data, maxshape=(None, 512, 512, 1))
    hf.create_dataset("Y_test", data=Y_test_data, maxshape=(None, 512, 512, 1))

Como se puede ver, las nparrays transformadas se dividen en cuatro "grupos" diferentes que se almacenan en los cuatro conjuntos de datos hdf5 [X_train, X_test, Y_train, Y_test]. La función LoadIPV () realiza el preprocesamiento de los datos de imagen médica.

Mi problema es que me gustaría almacenar las siguientes 100 nparrays en el mismo archivo h5 en los conjuntos de datos existentes: eso significa que me gustaría agregar, por ejemplo, el conjunto de datos X_train existente [100,512,512,9] con las siguientes 100 nparrays tal que X_train se convierte en [200,512,512,9]. Lo mismo debería funcionar para los otros tres conjuntos de datos X_test, Y_train, Y_test.

¡Muchas gracias por su ayuda!

Respuestas a la pregunta(1)

Su respuesta a la pregunta