ここで提供されている画像に対してテストしたい Java で画像分類子を作成しました: http://yann.lecun.com/exdb/mnist/
残念ながら、train-images-idx3-ubyte.gz または他の 3 つのファイルのいずれかをダウンロードすると、それらのファイル タイプはすべて .idx1-ubyte になります。
最初の質問: .idx1-ubyte をビットマップ (.bmp) ファイルにする方法を誰か教えてもらえないだろうか?
2 番目の質問: または、これらのファイルを一般的に読み取るにはどうすればよいですか?
IDX ファイル形式に関する情報: IDX ファイル形式は、さまざまな数値型のベクトルおよび多次元行列用の単純な形式です。基本的な形式は次のとおりです。
magic number
size in dimension 0
size in dimension 1
size in dimension 2
.....
size in dimension N
data
マジック ナンバーは整数 (MSB ファースト) です。最初の 2 バイトは常に 0 です。
3 番目のバイトは、データのタイプをコード化します。
0x08: unsigned byte
0x09: signed byte
0x0B: short (2 bytes)
0x0C: int (4 bytes)
0x0D: float (4 bytes)
0x0E: double (8 bytes)
4 番目のバイトは、ベクトル/行列の次元数をコードします: ベクトルの場合は 1、行列の場合は 2....
各次元のサイズは 4 バイトの整数です (Intel 以外のほとんどのプロセッサと同様に、MSB ファースト、ハイエンド エンディアン)。
データは C 配列のように格納されます。つまり、最後の次元のインデックスが最も速く変化します。