首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python字节读取MNIST

用python字节读取MNIST
EN

Stack Overflow用户
提问于 2016-11-07 23:04:54
回答 1查看 1.4K关注 0票数 0

我正在玩MNIST数据集,我遇到了以下情况,我不太明白。根据文档,数据的格式如下:

代码语言:javascript
复制
[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.

因此,我预计字节数为4-8,对应的项目数(60,000)为:

代码语言:javascript
复制
struct.pack('i', 60000)
>> '`\xea\x00\x00'

但是,当我逐字节读取文件时,它们看起来是相反的顺序:

代码语言:javascript
复制
with gzip.open(path_to_file, 'rb') as f:
    print struct.unpack('cccc', f.read(4))
    for i in range(4):
        print struct.unpack('c', f.read(1))
>> ('\x00', '\x00', '\x08', '\x01')
>> ('\x00', '\x00', '\xea', '`')

显然,我可以反转它们以得到预期的顺序,但我不明白为什么字节看起来会反转。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-07 23:10:33

这是一个字内字节排序的工件。数据被格式化为整数,所以您必须这样读取它。这是“小终端”寻址,最小(最早)的地址有最小的字节。注意,在第一个字段中,指定的格式是"MSB“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40476294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档