这里有新鲜出炉的 Python 教程,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
这篇文章主要介绍了 python 读取二进制 mnist 实例详解的相关资料, 需要的朋友可以参考下
python 读取二进制 mnist 实例详解
training data 数据结构:
- <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
将整个文件读入:
- 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()
来源: http://www.phperz.com/article/17/0628/336217.html