0
我正在玩MNIST数据集,遇到以下情况,我不太明白。根据 documentation数据的格式如下:用python读取MNIST字节
[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)的数量为:
struct.pack('i', 60000)
>> '`\xea\x00\x00'
然而,当我读文件逐字节,它看起来像它们以相反的顺序:
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', '`')
很显然,我可以扭转他们得到预期的顺序,但我confu sed为什么字节似乎颠倒了。