问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样使用decision tree对mnist数据集训练

发布网友 发布时间:2022-05-24 18:26

我来回答

1个回答

热心网友 时间:2023-10-25 02:20

其实就是python怎么读取binnary file
mnist的结构如下,选取train-images

TRAINING SET IMAGE FILE (train-images-idx3-ubyte):
[offset] [type] [value] [description]
0000 32 bit integer 0x(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()

只是为了测试是否成功所以只读了一张图片
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
四川省综合素质a级证书? 华为手机怎么还原微信聊天记录 华为手机微信内容恢复方法 股权转让的主要方式有哪些 股权转让有哪几种方式 股东转让的几种形式是 股东转让的几种形式 高考多少分能上衡阳师范学院南岳学院 你们被玖富金融骗,后期有还款吗? 玖富悟空理财2022年最新消息还有希望吗?悟空理财最新情况(悟空理财可信... 同等责任交通事故致人死亡是否追究刑事责任 自己制作的idx1-ubyte文件怎么在python中读取(tensorflow框架) 华为荣耀9X的旧秘码是什么? 如何读取t10k-images python windows 下无法读取文件(100MB以上) 如何生成.idx3-ubyte 格式的文件 同为红轴请问cherry MX board和G80有什么区别 现在买基金哪个平台费率最低 基金定投哪个银行费率低 那几家基金公司低的基金转换费率低 小牛充电器可以用笔记本充电器替代吗 电动牙刷十大名牌素君品 电动牙刷品牌前十名 安平油菜花地在哪里? 西双版纳油菜花基地在哪里? alexisfawx翻译中文名 你知道吗???脑控者一定藏在邻居家邻居家有高科脑控武器,脑控者隔墙操纵观察实验你,夜悄入你家注 刑法第389条受贿罪中所称的“违反国家规定”,具体是指哪些规定?请列举具体的规定及其详细条款。 安徽省音乐综合分计算公式 关于歌曲中“小节”的计算。 平板充电不进 为什么hinton 的代码出错 【急】xp系统打开codol的时候弹出一对话框“475does't support ubyte4n vevtex date” 数据量太大,怎样用python一次读取一个手写体mnist 怎么把mnist的识别结果输出 问--什么是段泥? 我想自己做一个给老外代购的服务平台,零售的。 以下问题烦请热心人士帮忙回答,谢谢 给老外代购丝绵之类 我有个网站,是做国内网络代购的,主要客户是老外,有什么好的宣传的办法没有? 魅族ep31和三星eg920哪个音质好 华为am116耳机。魅族ep21hd 魅族ep31 苹果耳机 哪一款好,音质方面的。说实话不 三星ehs64和魅族ep31哪个好 之前在老家考的教师资格证,有一科没过,下一次考试报名可以选择在现工作的地方报考嘛,不是一个省的? 请问QQ通讯录怎么清空? 怎样清空QQ通讯录 求这个背景图片,拜托,谢谢 请问背景图片是什么?谁有?谢谢 徽州宴老板娘被拘7日,店内生意也受影响,事件的基本情况是怎样的? 老板娘遛狗事件后,徽州宴暂停接待散客,为何这场风波没有赢家? 老板娘遛狗事件后徽州宴暂停接待散客,为何这场风波没有赢家? 怎样把一张a4纸上的内容缩印成a4纸的一半,只复印