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爲什麼字節似乎顛倒了。