python read binary mnist instance details

  • 2020-06-03 06:59:50
  • OfStack

python read base 2 Example details of mnist

training data Data structure:


<br>[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
 

Read the entire file into:


filename = 'train-images.idx3-ubyte'
binfile = open(filename , 'rb')
buf = binfile.read()

Read the first 4 interger of 32bit:


index = 0
magic, numImages , numRows , numColumns = struct.unpack_from('>IIII' , buf , index)
index += struct.calcsize('>IIII')

Read 1 picture, 784=28*28:


im = struct.unpack_from('>784B' ,buf, index)
index += struct.calcsize('>784B')
 
im = np.array(im)
im = im.reshape(28,28)
 
fig = plt.figure()
plotwindow = fig.add_subplot(111)
plt.imshow(im , cmap='gray')
plt.show()

Thank you for reading, I hope to help you, thank you for your support to this site!


Related articles: