python读取mnist
来源:互联网 发布:玲珑加速器mac怎么样 编辑:程序博客网 时间:2024/05/23 01:12
http://www.cnblogs.com/x1957/archive/2012/06/02/2531503.html
其实就是python怎么读取binnary file
mnist的结构如下,选取train-images
TRAINING SET IMAGE FILE (train-images-idx3-ubyte):
[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
也就是之前我们要读取4个 32 bit integer
试过很多方法,觉得最方便的,至少对我来说还是使用
struct.unpack_from()
filename
=
'train-images.idx3-ubyte'
binfile
=
open
(filename ,
'rb'
)
buf
=
binfile.read()
先使用二进制方式把文件都读进来
index
=
0
magic, numImages , numRows , numColumns
=
struct.unpack_from(
'>IIII'
, buf , index)
index
+
=
struct.calcsize(
'>IIII'
)
然后使用struc.unpack_from
'>IIII'是说使用大端法读取4个unsinged int32
然后读取一个图片测试是否读取成功
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()
'>784B'的意思就是用大端法读取784个unsigned byte
完整代码如下
import
numpy as np
import
struct
import
matplotlib.pyplot as plt
filename
=
'train-images.idx3-ubyte'
binfile
=
open
(filename ,
'rb'
)
buf
=
binfile.read()
index
=
0
magic, numImages , numRows , numColumns
=
struct.unpack_from(
'>IIII'
, buf , index)
index
+
=
struct.calcsize(
'>IIII'
)
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读取mnist
- Python读取MNIST文件
- python读取MNIST
- python读取MNIST image数据
- 读取 mnist 数据集 --- python
- python读取MNIST image数据
- python读取MNIST数据集
- python struct文件读取mnist字节文件
- 使用python读取tensorflow实例中的MNIST模拟数据
- C++ Mnist Image读取
- MNIST数据库读取
- MNIST数据读取分析
- 《MNIST学习》读取数据
- MNIST数据读取
- 【机器学习】MNIST数据集上的python读取和使用操作
- Mnist下载 Python源代码
- caffe python接口:mnist
- C++读取MNIST数据集
- 设计模式(4)——抽象工厂模式
- Android Studio :Error:(1, 0) Plugin is too old, please update to a more recent version, or set AND……
- iOS开发--根据label内容动态设定label大小
- 链表的反转
- TCP/IP、Http、Socket的区别
- python读取mnist
- 第一行代码-13.3 定制自己的日志工具
- Android <shape />的使用
- 设计模式(5)——建造者模式(Builder Pattern)
- 虚函数 纯虚函数 抽象类
- 使用poi来解析Excel的xls和xlsx
- React-DOM操作详解
- dict中的“深拷贝”和“浅拷贝”
- iOS- "unacceptable content-type: text/plain"等content-type bug解决方案