Я ищу возможность добавить данные в существующий набор данных в файле .h5 с помощью Python (h5py).
Краткое введение в мой проект: я пытаюсь обучить CNN, используя данные медицинского изображения. Из-за огромного объема данных и интенсивного использования памяти при преобразовании данных в массивы NumPy мне нужно было разделить "преобразование" на несколько фрагментов данных: загрузить и предварительно обработать первые 100 медицинских изображений и сохранить массивы NumPy в hdf5. файл, затем загрузите следующие 100 наборов данных и добавьте существующий файл .h5 и т.д.
Теперь я попытался сохранить первые 100 преобразованных массивов NumPy следующим образом:
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))
Как видно, преобразованные массивы NumPy разбиты на четыре разные "группы", которые хранятся в четырех наборах данных hdf5 [X_train, X_test, Y_train, Y_test].
Функция LoadIPV() выполняет предварительную обработку данных медицинского изображения.
Моя проблема в том, что я хотел бы сохранить следующие 100 массивов NumPy в том же файле .h5 в существующих наборах данных: это означает, что я хотел бы добавить, например, существующий набор данных X_train формы [100, 512, 512, 9] со следующими 100 массивами NumPy, так что X_train приобретает форму [200, 512, 512, 9]. То же самое должно работать для других трех наборов данных X_test, Y_train и Y_test.