python读取mnist数据集的方法
发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,这篇文章主要讲解了"python读取mnist数据集的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python读取mnist数据集的方法"吧!数
千家信息网最后更新 2024年11月25日python读取mnist数据集的方法
这篇文章主要讲解了"python读取mnist数据集的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python读取mnist数据集的方法"吧!
数据集格式介绍
这部分内容网络上很常见,这里还是简明介绍一下。网络上下载的mnist数据集包含4个文件:
前两个分别是测试集的image和label,包含10000个样本。后两个是训练集的,包含60000个样本。.gz表示这个一个压缩包,如果进行解压的话,会得到.ubyte格式的二进制文件。
上图是训练集的label和image数据的存储格式。两个文件最开始都有magic number和number of images/items两个数据,有用的是第二个,表示文件中存储的样本个数。另外要注意的是数据的位数,有32位整型和8位整型两种。
读取方法
.gz格式的文件读取
需要import gzip
读取训练集的代码如下:
def load_mnist_train(path, kind='train'): '''path:数据集的路径kind:值为train,代表读取训练集''' labels_path = os.path.join(path,'%s-labels-idx1-ubyte.gz'% kind) images_path = os.path.join(path,'%s-images-idx3-ubyte.gz'% kind) #使用gzip打开文件 with gzip.open(labels_path, 'rb') as lbpath: #使用struct.unpack方法读取前两个数据,>代表高位在前,I代表32位整型。lbpath.read(8)表示一次从文件中读取8个字节 #这样读到的前两个数据分别是magic number和样本个数 magic, n = struct.unpack('>II',lbpath.read(8)) #使用np.fromstring读取剩下的数据,lbpath.read()表示读取所有的数据 labels = np.fromstring(lbpath.read(),dtype=np.uint8) with gzip.open(images_path, 'rb') as imgpath: magic, num, rows, cols = struct.unpack('>IIII',imgpath.read(16)) images = np.fromstring(imgpath.read(),dtype=np.uint8).reshape(len(labels), 784) return images, labels
读取测试集的代码类似。
非压缩文件的读取
如果在本地对四个文件解压缩之后,得到的就是.ubyte格式的文件,这时读取的代码有所变化。
def load_mnist_train(path, kind='train'): '''path:数据集的路径kind:值为train,代表读取训练集''' labels_path = os.path.join(path,'%s-labels-idx1-ubyte'% kind) images_path = os.path.join(path,'%s-images-idx3-ubyte'% kind) #不再用gzip打开文件 with open(labels_path, 'rb') as lbpath: #使用struct.unpack方法读取前两个数据,>代表高位在前,I代表32位整型。lbpath.read(8)表示一次从文件中读取8个字节 #这样读到的前两个数据分别是magic number和样本个数 magic, n = struct.unpack('>II',lbpath.read(8)) #使用np.fromfile读取剩下的数据 labels = np.fromfile(lbpath,dtype=np.uint8) with gzip.open(images_path, 'rb') as imgpath: magic, num, rows, cols = struct.unpack('>IIII',imgpath.read(16)) images = np.fromfile(imgpath,dtype=np.uint8).reshape(len(labels), 784) return images, labels
读取之后可以查看images和labels的长度,确认读取是否正确。
感谢各位的阅读,以上就是"python读取mnist数据集的方法"的内容了,经过本文的学习后,相信大家对python读取mnist数据集的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
数据
文件
两个
方法
代表
样本
格式
训练
个数
代码
内容
学习
字节
就是
网络
路径
高位
存储
测试
简明
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
康冠网络技术有限公司
网络安全资质公司
数据库的表自增字段
济宁市网络安全竞赛题
电子阅览室网络安全
高密服务器的
服务器端口映射配置
金刚石数据库登录
天天狼人杀服务器炸了
蚌埠网络安全应急中心招聘
荔湾小程序软件开发哪家口碑好
tp网卡服务器
网络安全学校官网
网络技术应用制作网页
公司重要数据库
网络技术中
深圳网络安全行业就业行情
共享服务器的电脑会泄密吗
软件开发费可以开票吗
网络安全专业成长路线
两台服务器传输文件
steam离线模式方舟服务器
郑州软件开发app公司哪家好
注册服务器无响应
凯恩之角装备数据库怎么用
数据库字段 枚举
综合软件开发技术指导
澳大利亚笔记软件开发
云计算和网络技术哪个好
山东乾江互联网科技