mnist java_mnist文件格式说明

TRAINING SET LABEL FILE (train-labels-idx1-ubyte):

[offset] [type]          [value]          [description]

0000     32 bit integer  0x00000801(2049) magic number (MSB first)

0004     32 bit integer  60000            number of items

0008     unsigned byte   ??               label

0009     unsigned byte   ??               label

........

xxxx     unsigned byte   ??               label

The labels values are 0 to 9.

TRAINING SET IMAGE FILE (train-images-idx3-ubyte):

[offset] [type]          [value]          [description]

0000     32 bit integer  0x00000803(2051) magic number

0004     32 bit integer  60000            number of images

0008     32 bit integer  28               number of rows

0012     32 bit integer  28               number of columns

0016     unsigned byte   ??               pixel

0017     unsigned byte   ??               pixel

........

xxxx     unsigned byte   ??               pixel

idx3-ubyte 的

1.Magic number。即幻数,它可以用来标记文件或者协议的格式,很多文件都有幻数标志来表明该文件的格式。idx3-ubyte的作者也遵循常例。2051是图片,2049是文本。

2.number of images / number of items 。

3.内容。像素或文字

可以查看文件字节的文本编辑器打开解压出来的train-images.idx3-ubyte

get-article-detail-138679.html

get-article-detail-138679.html

673fc9bd00bb2423bb15d785e4983f18.png

截取前面几行。这些都是16进制的。

第一部分 a为0000 0803。 转为10进制就是

(0000 0803)10 = 2051. 即magic number是2051,图片格式

第二部分为0000 ea60。转为10进制就是6000。说明这个文件包含6000个图片。

第三部分和第四部分,都是 0000 001c。转为10进制就是28,说明图片的长、宽是28.

以上4个部分,所有信息都是占用4个字节(结构图中的type = 32 bit intege)。

第五部分图片的像素位,只占用1个字节(结构图中的type =unsigned byte)。

b33e3500f66ce6137ac95e20789f6f1f.png

我们开始数字节文本,在第四部分的后面,一共有152 个“00” (图中的红框),然后是03 12 12 7e 88。这里是16进制。也就是03(0x03),18(0x12),18(0x12),18(0x12),126(0x7e),136(0x88)

因为前面定义了一个图像是28*28,152应该被分解为28*5+12,代表第一张图的前5行的像素都是00,及第6行的前12位像素也是00,第6行的第13位像素是03,14位是18。。。。。

利用网上找的程序,生成第一张的图像如下:

6dbb7b613416737cd4af0678cf67f4ed.png

利用windows自带的图像编辑软件取色,鼠标放到x-5 y-12位置,开发依次比较,发现像素符合逻辑。

89197ce1017b5ba9197d9c07327a7bcd.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值