Я читал и работал над SO вопросами, связанными с наборами данных Street View House Numbers (SVHN). Файлы доступны в 2 разных местах:
Stanford:
Набор данных номеров домов с видом на улицу (SVHN)
kaggle:
Номера домов с видом на улицу (SVHN) | Kaggle
Мой вопрос связан с форматом файлов digitStruct.mat
для каждого набора изображений (поезд, тест и дополнительные материалы). Они определяют размеры имени, метки и ограничительной рамки для каждого изображения. Как я понимаю, файл mat написан как структура Matlab в формате HDF5 (которую можно прочитать с помощью h5py
).
Я смог получить доступ к файлам digitStruct.mat
из kaggle и прочитать их с помощью h5py
. Я не могу открыть те же файлы с сайта в Стэнфорде с h5py
(или с HDFView). Некоторые сообщения SO, которые я прочитал, указывают, что файлы Stanford являются более старым форматом Matlab и должны читаться с scipy.io.loadmat
.
- Файлы в Стэнфорде и kaggle одинаковые?
- Если нет, в чем различия?
- Можно ли открыть файлы Stanford
digitStruct.mat
с помощью h5py
?
- Если это так, каким способом мне следует загружать и извлекать файлы tarford Standford? (К вашему сведению, я использую Win-7 и использую HTTP-загрузку и WinZip для извлечения.)
Я добавляю дополнительную информацию, чтобы документировать различное поведение, наблюдаемое в разных файлах .mat. Это может помочь с диагнозом.
Я могу открывать и обрабатывать файлы .mat из kaggle с помощью этого вызова:
h5f = h5py.File('digitStruct.mat','r')
Для файлов из Стэнфорда я получаю разные ошибки в зависимости от файла и функции, используемой для открытия.
Команда ниже выполняется без сообщения об ошибке. Это заставляет меня поверить, что это не файл Matlab v7.3, который можно открыть с помощью h5py.
mat = scipy.io.loadmat('./Stanford/test_32x32.mat')
Оба эти вызова не работают (предоставляется краткое сообщение об ошибке):
mat = scipy.io.loadmat('./test/digitStruct.mat')
Traceback...
NotImplementedError: Please use HDF reader for matlab v7.3 files
h5f = h5py.File('./test/digitStruct.mat','r')
Traceback...
OSError: Unable to open file (file signature not found)
Кроме того, я не могу открыть test/digitStruct.mat
с HDFView. Мой вывод для файлов Stanford digitStruct.mat: они могут быть файлами Matlab v7.3, но были повреждены при загрузке. Однако я не уверен, что сделал не так (так как я могу без проблем загружать и читать файлы kaggle).