返回第254章 数据解析和FCN的拓扑结构(1 / 2)一碗酸梅汤首页

关灯 护眼     字体:

上一章 目录 下一页

随后,江寒操作着电脑,心无旁骛,很快就进入了状态。

夏雨菲也不再来打扰他,拿着手机,半躺在床上,自己上网、听歌。

江寒将高老师发送来的和下载下来,连同夏雨菲下载的前11个文件,放在了同一个文件夹中。

然后在第1个文件上点击鼠标右键,选择用in解压缩,很快就得到了数据包。

一共两个文件,trinigesidx3ubyte与trinbelsidx1ubyte。

idx3ubyte和idx1ubyte都是自定义的文件格式,官网上就有格式说明。

triniges文件大小超过1g,保存了20万张手写数字的图片信息。

而trinbels中则存储了20万个标签数据,与triniges一一对应。

和公开版本的不同,用于比赛的这个手写数字数据集,数据量要大出好几倍。

ggle官方将数据集分为两部分,训练集trin向参赛选手公开,而测试集test则内部保存。

比赛的形式很简单,大家根据公开的训练集,编写自己的程序,提交给主办方。

主办方用不公开的测试集数据,对这些程序逐一进行测试,然后比较它们在测试集上的表现。

主要指标是识别率,次要指标是识别速度等。

这是“人工神经网络”在这类竞技场上的初次亮相,江寒可不想铩羽而归。

事实上,如果想追求更好的成绩,最好的办法,就是弄出卷积神经网络来。

那玩意是图像识别算法的大杀器。

在“机器学习”这个江湖中,的威力和地位,就相当于武侠世界中的倚天剑、屠龙刀。

一出,谁与争锋!

只可惜,这个东西江寒现在还没研究出来。

现上轿现扎耳朵眼,也来不及了。

再说,饭要一口口吃,搞研究也得一步步来。

跨度不能太大喽,免得扯到蛋

所以在这次比赛中,江寒最多只能祭出“带隐藏层的全连接神经网络”。

有了这个限制,就好比戴着镣铐跳舞,给比赛平添了不少难度和变数。

那些发展了几十年的优秀算法,也不见得会输普通的多少。

所以,现在妄言冠军十拿九稳,还有点为时过早。

不过,有挑战才更有趣味性嘛,稳赢的战斗打起来有什么意思呢?

江寒根据官网上找到的数据格式说明文档,编写了一个文件解析函数,用来从两个trin文件中提取数据。

trinigesidx3ubyte的格式挺简单的,从文件头部连续读取4个32位整形数据,就能得到4个参数。

用来标识文件类型的魔数、图片数量n、每张图片的高度h和宽度。

从偏移0016开始,保存的都是图片的像素数据。

颜色深度是8位,取值范围0255,代表着256级灰度信息,每个像素用一个字节来保存。

然后,从文件头中可以得知,每张图片的分辨率都是2828。

这样每张图片就需要784个字节来存储。

很容易就能计算出每张图片的起始地址,从而实现随机读取。

如果连续读取,那就更简单了,只需要每次读取784个字节,一共读取n次,就能恰好读取完整个文件。

需要注意的是,图像数据的像素值,在文件中存储类型为unsignedhr型,对应的frt格式为。

所以在ythn程序中,在igesize这个参数的后面,还要加上参数,这样才能读取一整张图片的全部像素。

如果忘了加,则只能读取一个像素

trinbelsidx1ubyte格式更加简单。

前8个字节是两个32位整形,分别保存了魔数和图片数量,从偏移0009开始,就是unsignedbyte类型的标签数据了。

每个字节保存一张图片的标签,取值范围09。

江寒很快就将标签数据也解析了出来。

接下来,用tplt的绘图功能,将读取出来的手写数字图片,绘制到屏幕上。

然后再将对应的标签数据,也打印到输出窗口,两者一比较,就能很轻松地检验解析函数是否有问题。

将解析函数调试通过后,就可以继续往下进行了。

首先要将图片的像素信息压缩一下,二值化或者归一化,以提高运算速度,节省存贮空间。

『加入书签,方便阅读』

上一章 目录 下一页