Хранение подмножеств HDF5 в виде наборов данных (на Python)

У меня ограниченные знания о HDF5, но я хотел бы кое-что понять о выборе HDF.

Чтобы дать некоторый контекст, меня интересует использование HDF5 для приложений в машинном обучении. Предположим, у вас есть матрица данных с n строками и p столбцами. При типичной настройке перекрестной проверки k-кратности вы разделите матрицу на k выборки (каждая размером (n/k, p)) и повторно будете использовать k-1 для обучения и 1 для тестирования. Конечно, для хранения всех наборов для обучения и тестирования потребуется много места. Здесь может помочь выбор HDF5.

Если я правильно понимаю, выбор может относиться к любому подмножеству набора данных. Кроме того, выбор может быть сохранен в наборе данных. Поэтому, начиная с (n, p) набора данных в HDF5, я мог бы создать k групп (по одной для каждой складки), содержащих набор обучающих данных (подмножество строк в исходном наборе данных) и набор тестовых данных (остаток). Поскольку это всего лишь ссылки, он не займет слишком много места.

Я нашел документацию по выбору, но она не очень ясна. Примеры кода написаны на C, который немного сложно изменять, и я в основном использую Python. Я не нашел ничего похожего на это в PyTables. Я нашел несколько примеров в h5py, но не мог понять, как поместить данные в подмножестве.

Может ли кто-нибудь подтвердить, что это интересный подход, и предоставить некоторый код Python для хранения подмножества строк из набора данных в качестве другого набора данных?


person Mathieu Dubois    schedule 06.01.2015    source источник


Ответы (1)


Я почти смог это сделать благодаря сообществу h5py. См. Ветку здесь.

person Mathieu Dubois    schedule 14.01.2015
comment
Привет, Матье, спасибо за этот пост - он мне очень помог. Вы знаете, можно ли создать ссылку на файл в режиме только для чтения? Когда я пытаюсь это сделать, я получаю сообщение об ошибке ValueError: Unable to create reference (no write intent on file). Мне было интересно, можно ли написать ссылку на файл, который указывает на отдельный набор данных только для чтения. Вы можете что-нибудь подумать по этому поводу? - person corvus; 20.03.2018
comment
Извините, я не работал над этим с 2015 года ... Может быть, попробуйте форумы h5py, они были очень добрыми и полезными. - person Mathieu Dubois; 03.04.2018