Просто чтобы прояснить, как создать набор данных в первую очередь, вот как это будет выглядеть: h5f.create_dataset ('X_train', data = orig_data, сжатие = "gzip", chunks = True, maxshape = (None, )) Ключевая часть, настраивающая maxshape, чтобы быть кортежем, как у меня есть.

возможность добавить данные в существующий набор данных в h5-файл, используя python (h5py).

Краткое введение в мой проект: я пытаюсь обучить CNN, используя данные медицинского изображения. Из-за огромного объема данных и интенсивного использования памяти при преобразовании данных в nparrays мне пришлось разделить «преобразование» на несколько фрагментов данных -> загрузить и предварительно обработать первые 100 медицинских изображений и сохранить nparrays в hdf5 file -> Загрузить следующие 100 наборов данных и добавить существующий h5-файл.

Теперь я попытался сохранить первые 100 преобразованных nparrays следующим образом:

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))

Как можно видеть, преобразованные nparrays разбиты на четыре разных «группы», которые хранятся в четырех наборах данных hdf5 [X_train, X_test, Y_train, Y_test]. Функция LoadIPV () выполняет предварительную обработку данных медицинского изображения.

Моя проблема в том, что я хотел бы сохранить следующие 100 nparrays в том же файле h5 в существующие наборы данных: это означает, что я хотел бы добавить, например, существующий набор данных X_train [100,512,512,9] со следующими 100 nparrays таким, что X_train становится [200,512,512,9]. То же самое должно работать для других трех наборов данных X_test, Y_train, Y_test.

Спасибо большое за помощь!

Ответы на вопрос(1)

Ваш ответ на вопрос