Набор данных MNIST - файлы.gz не содержат "сырых" байтов
Я пытаюсь использовать набор данных MNIST. Однако, когда я загружаю файл изображения.gz, а затем распаковываю его, я получаю много "сжатых" байтов. Вот немного из этого:
'Tπüó<$fi˛˛˛˛Ò∆∆∆∆∆∆∆∆™4CrHr£„˛·˛˛˛˙²˛åBCCC;Ï˛jS˝—ÈˇSÅ˛Ó,;˘˛>Ö˛ª
Õ¯:~˛∂K˚9›˛¶À˛€#&˛˛M‡˛sÖ˛˛4=Ú˛˛4y˛˛€(y˛œt}´ˇˇñ]©˝˝˝˝˝˝⁄©˝˝˝’é∞˝˝z4˙˝“
Œ˝åM˚“z¯˝A—˝˝Au˜˝∆
L˜˝Á?Ä˝˝ê∞ˆ˝üÍ˝È#∆˝˝çN¯˝Ω»˝˝çÜ˝˝≠
Я думаю, что это "сжатые" байты, по крайней мере. Тем не менее, согласно "объяснителю формата файла" в нижней части страницы, содержимое файла должно состоять из 32-битных целых чисел, а затем из набора байтов без знака. Очевидно, это не то, что я вижу.
Что является причиной этого? Это потому, что я дважды щелкнул файл.gz? Это потому, что я не распаковал файл правильно? Это из-за недостатка технических знаний, и именно так и должны быть файлы?
В основном, что я сказал выше, было то, как вы решаете проблему и как ее решаете.
Кстати: я на Mac OS 10.13.3. Файл был загружен из Google Chrome
1 ответ
содержимое файла должно состоять из 32-битных целых чисел, а затем из набора байтов без знака. Очевидно, это не то, что я вижу.
Нет, это именно то, что вы видите.
Все файлы состоят из необработанных байтов; все остальное зависит от интерпретации и зависит от того, с какой программой вы открываете файл.
Если вы откроете файл в текстовом редакторе, он попытается показать текст. Он никогда не будет отображать необработанные байтовые значения, а только соответствующие символы из таблицы ASCII (или из Unicode или другой кодовой страницы).
Однако на странице загрузки MNIST не говорится, что ваши данные будут записаны в ASCII в виде десятичных чисел. Вместо этого он напрямую использует байтовые значения для кодирования данных: "32-разрядное целое число" распределяется на четыре байта (по 8 бит каждый); "неподписанный байт" - это, ну, один байт.
Короче говоря, загруженный файл имеет собственный формат, который требует специального программного обеспечения для его интерпретации; текстовый редактор не подойдет. Вместо:
Вы можете открыть файл в программе "hex editor". Шестнадцатеричные редакторы показывают необработанные байтовые значения (они предназначены специально для редактирования бинарных файлов), хотя вам все равно придется разбираться в отображаемых данных.
Вы можете написать короткую программу для преобразования данных в текстовый формат. Исходный формат, описанный MNIST, достаточно прост, например, это будет примерно 5–10 строк Python.
Файлы содержат графические данные - необработанные растровые изображения в виде серии пикселей. Таким образом, при некотором программировании их можно преобразовать в серию файлов изображений (BMP, GIF или PNG).