Я ищу возможность добавить данные в существующий набор данных в файле .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
.