python读取二进制mnist实例详解
python读取二进制mnist实例详解
trainingdata数据结构:
[offset][type][value][description] 000032bitinteger0x00000803(2051)magicnumber 000432bitinteger60000numberofimages 000832bitinteger28numberofrows 001232bitinteger28numberofcolumns 0016unsignedbyte??pixel 0017unsignedbyte??pixel ........ xxxxunsignedbyte??pixel
将整个文件读入:
filename='train-images.idx3-ubyte' binfile=open(filename,'rb') buf=binfile.read()
读取头四个32bit的interger:
index=0 magic,numImages,numRows,numColumns=struct.unpack_from('>IIII',buf,index) index+=struct.calcsize('>IIII')
读取一个图片,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()
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!