私は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 の 10 進数として書き込まれるとします。代わりに、バイト値を直接使用してデータをエンコードします。「32 ビット整数」は 4 バイト (各 8 ビット) に分散され、「符号なしバイト」は 1 バイトです。
つまり、ダウンロードしたファイルはカスタム形式であり、それを解釈するには特別なソフトウェアが必要であり、テキスト エディターでは不十分です。代わりに、次の操作を行います。
ファイルを「16進エディタ」プログラム。16進エディタする生のバイト値を表示します (これらはバイナリ ファイルの編集専用です)。ただし、表示されるデータの意味を理解するのはユーザー次第です。
データをテキスト形式に変換する短いプログラムを書くこともできます。MNIST が記述する元の形式は非常に単純なので、たとえば Python では 5 ~ 10 行程度で済みます。
ファイルには、ピクセルの連続として、生のビットマップなどのグラフィック データが含まれています。そのため、さらにプログラミングを行うことで、一連の画像ファイル (BMP、GIF、または PNG) に変換できます。