python读取二进制mnist实例详解

yipeiwu_com6年前Python基础

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()

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

Python 字符串转换为整形和浮点类型的方法

Python2.6 之前:字符串转换为整形和浮点型 >>>import string >>>string.atoi('34.1') 34 &...

TensorFlow tensor的拼接实例

TensorFlow提供两种类型的拼接: tf.concat(values, axis, name='concat'):按照指定的已经存在的轴进行拼接 tf.stack(values...

sublime text 3配置使用python操作方法

1、 在sublime text的官网下载,是适合自己系统的版本。官网地址:https://www.sublimetext.com/3 2、安装好后,在菜单栏打开:Preferences...

Python控制Firefox方法总结

Python控制Firefox方法总结

有时候为了自动化测试网页,我们往往希望能够使用一些脚本语言控制浏览器. 通过脚本模拟一些浏览器动作,然后测试得到的结果.这里, 我们讲解一下如何使用Python语言控制Firefox浏览...

Flask web开发处理POST请求实现(登录案例)

本文我们以一个登录例子来说明Flask对 post请求的处理机制。 1、创建应用目录,如 mkdir example cd example 2、在应用目录下创建  ru...