Запутались, как хранить 3D матрицы в файле HDF5 в Matlab? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть несколько трехмерных матриц, которые необходимо сохранить в файле hdf5. Я посмотрел везде, но я запутался в процессе хранения данных в файле hdf5. Могу ли я сохранить несколько трехмерных матриц в одном наборе данных в файле hdf5 или мне нужно создать отдельный набор данных для каждой трехмерной матрицы? Мне нужен этот набор данных для обучения 3D-модели CNN. Если возможны оба способа, что лучше всего подходит для обучения?

Дополнительная информация: Размер матрицы составляет 12x24x12, а для хранения отдельных данных требуется менее 100 КБ. Набор данных создается в Matlab, а результирующий файл будет использоваться в python (где будет обучаться модель).

1 Ответ

2 голосов
/ 04 февраля 2020

В Matlab вы указываете -v3.7, чтобы сохранить материал в формате hdf5. Вы сохраняете свои матрицы следующим образом:

mat0 = zeros(12,24,12);
mat1 = ones(12,24,12);
mat2 = 2*ones(12,24,12);
save data.mat mat0 mat1 mat2 -v7.3

В python вы читаете их так:

import numpy as np
import h5py
f = h5py.File('/home/innereye/data.mat','r')
mat1 = f.get('mat1')
mat1 = np.array(mat1)

У вас есть много материала о Stackoverflow о чтении файлов матов с python, например, здесь и здесь .

...