2016012128

来自iCenter Wiki
2017年7月4日 (二) 16:04Liuzongjian讨论 | 贡献的版本

跳转至: 导航搜索

2017年6月30日

试用PYNQ板

阅读Python示例代码

完成调试pynq audio部分


2017年7月1日


今天延续昨天的教学实验,进一步完成了usb_webcam 和opencv_filter_webcam的例子运行。

通过对pynk板进行调试,将其输出接口与显示器相连接,运行代码即可以拍摄出照片,还可以将照片属性进行改变,旋转或转换成黑白轮廓,得到处理后的图片。

我们可以从这几个例子中看到利用python代码可以控制pynq板实现功能,显示器或者耳机只是提供输出端的途径。

下午我们首先听了老师对两个pdf文件的解读,大致明白了利用tensorboard对数据进行训练的原理,然后使用tensorflow来训练系统,识别图片。远程连接电脑并下载了dota(为了利用速度更快的GPU)之后用cmd执行了tfExample文件,进行了简单的操作,在tensorbroad上显示出了最终结果,一个十维向量在三维的表示。

在老师的讲解和助教对代码的解读之后,我明白了tensorflow对图形化界面的识别其实是一个反馈调节的过程,不断修改权重分布, 最终能将输入数据进行分类。这与代数中的矩阵运算相关,其实是一个强行计算的过程。学习的次数越多,分类识别越精准,正是深度学习次数太少,我们点击一个九,会看到七等数字也被化为同类,这就说明反馈的过程是存在一定的容错性的。如果这个反馈进行上万次,深度学习就会更加精准,应用范围也是非常广的。


2017.7.2


学习内容 上午主要是了解神经网络的具体内容。老师先讲了神经网络的发展历史,分类,一些典型代表,包括谷歌的CLDNN,CTC模型还有LSTM,我们的网络主要就有CLDNN和LSTM还有一些其他部分构成。用到的函数库是keras,这是一个TensorFlow的封装版,使用更加方便,可以免去很多tensorflow的麻烦。 深度学习不仅要能够对数据有很好的拟合,还要防止过好的拟合,即过多的学习也不是好的,因为训练用的数据是有限的,对实验数据拟合的过好之后,可能对真实数据拟合的不好。

操作内容 首先要安装keras,从gitlab上下载数据,其中两个代码涉及到地址的内容改成当前所用地址,然后跑这两个代码,开始训练,进行运算。样本来自我们前几天自己录的音,不同的是被老师加上了很多背景白噪声,大幅度增加了样本量,实现了“增强学习”的目的。将样本分割成两部分,分别放在两个不同的文件夹里,自主选择一部分用作训练,另一部分用作测试。程序在运行时需要安装cudnn,对gpu进行加速,否则程序会运行失败,尝试安装cudnn,因为计算机中没有vs,所以导致一个组件安装失败,cudnn就整体安装失败,在取消vs组件的安装勾选之后,安装成功。 然后要按照教材上的说明来进行,遇到的一个问题是,gpu版本的tensorflow必须要安装cudnn库和cuda软件对gpu进行加速,配套的是cuda的版本8.0和cudnn的5.1版本,但是提供的cudnn版本是6.0,系统不支持,所以从网上下载了cudnn5.1版本之后,放在NVIDDIA/CUDAv8.0/bin目录下就可以运行了。

上午在跟partner操作时对一些细节原理及代码识别出产生不理解,导致在运行过程中一直有报错,助教也一度很懵。在工作站上运行也出现了很多问题,主要是10054和10061错误,我的那台笔记本远程连接但是没电了,我忘记带充电器了,而partner的电脑始终连接不上,上午的工作被迫暂停。

下午在助教的帮助下,我们重新一点点把东西都安装好了,代码上一开始没有改或者说没改好的地址也改到了正确的路径,数据也分好了test和train两个部分,也放弃了远程连接,直接用显示屏显示,然后就是等待训练数据,修改参数。网络正确率走的时候已经过半。一晚上的时间准确率会提高很多。


2017.7.3