2016012132

来自iCenter Wiki
跳转至: 导航搜索

2017年6月30日

  • 完成调试pynq audio部分
  • 安装并配置python
  • 安装并试用TensorFlow


配置过程中找不到Python,因为Python2都是直接安装在根目录下的,而Python3却安装在c盘的Users文件夹下,找到它费了很大劲,最后在同学的解释和帮助下装好了,也还弄明白了怎么回事。

2017年7月1日

  • 完成教程实验usb_webcam
  • 完成教程实验opencv_filter_webcam
  • 学习内容

了解了usb webcam的工作原理,进一步讲解了pync的优点,pync内部的硬件可扩展性非常强,在未来的会发挥较大的作用。

caption

学习了使用tensorflow来训练系统,识别图片,讲解了核心的代码,读取出图片的信息,制作成28*28的矩阵,在进行运算将其变为一个数,从图片数据库中随机抽取4长,进行机器学习,给予机器反馈结果,达到识别图片的目的。

caption

caption

我觉得这个技术可以应用到人脸识别上,不过可能失误会比较大,需要的学习次数因此就比较多。而且人脸识别由于大部分的脸不像数字那样易于区分,像鼻子眼睛这些在摄像头下面的差别非常小,因此要调节那个权重肯定非常的困难,不知道有没有什么更好的方法没有。

2017年7月2日

  • 学习内容

今天上午正式开始神经网络的内容。老师讲了神经网络的发展历史,分类,一些典型代表,包括谷歌的CLDNN,CTC模型还有LSTM,我们的网络主要就有CLDNN和LSTM还有一些其他部分构成。用到的函数库是keras,这是一个TensorFlow的封装版,使用更加方便,可以免去很多tensorflow的麻烦。

  • 操作内容

操作上的主要内容就是训练网络了。首先到git上找到并下载一个项目,将其中两个代码涉及到地址的内容改成当前所用地址,然后跑这两个代码,开始训练。样本来自我们前几天自己录的音,不同的是被老师加上了很多背景白噪声,大幅度增加了样本量,实现了“增强学习”的目的。将样本分割成两部分,分别放在两个不同的文件夹里,一部分用作训练,另一部分用作测试。这个部分我跟刘宗健上午时候都没有太注意,导致在运行过程中老是卡来卡去,这里报错那里报错,给助教带来了很多打扰。在工作站上运行之后出现了很多问题,主要是10054和10061错误,我们远程连接的那台笔记本出现了问题另一台又连接不上,上午只好作罢。


下午好在在助教的帮助下,我们把该安装的东西都安装好了,代码上一开始没有改或者说没改好的地址也改到了正确的路径,数据也分好了test和train两个部分,也放弃了远程连接,直接用显示屏显示,然后就是除了等训练结果。网络正确率走的时候到达了0.6 。希望一晚上能提高的比较多。

2017年7月3日

  • 操作内容

本日主要为在Android系统手机上实现语音识别,使用Android studio编写程序(其中老师也有提供一些和指引),并根据早前我们录音的数据和训练的结果的基础下进行简单的语音识别。 其中,利用到Keras, Tensorflow, Android Studio等程式,而代码则由已给予及经过老师指导与给与的资源指引下自己尝试操作并最终经由Android Studio生成一个.apk文件以在手机上实现App形式的以文字形式输出的语音识别。在老师提供的资源中有很多执行命令与代码,在运行过程中,遇到了一些大小问题,一些小的问题可以直接看上面的报错,大的问题就只能依靠助教了,比如说运行过程中我们一路过来操作都没有问题,但是我们在build的环节又不报错,又不能生成.apk文件,就感觉很迷,最后助教全盘推倒,重新按我们之前已经做好的步骤又来了一遍,结果发现原因只是因为没有连接手机它不生成,最后我们把app安装到手机上,发现它的识别能力还是很好的,可能与我们昨天训练了一天有关,看到我们做出来了成果,感觉很高兴,过程中向大家主动询问,寻求帮助是很必要的,毕竟我们是一个团队,不能单干,比如说我们当时缺少type c的线就是问同学借的。

  • 图片记录

caption


2017年7月4日

  • 学习内容

自己处理生成新的pb文件,成为model,替换掉原来的文件做成新的app,差不多就是重演那个代码。

  • 操作内容

首先将计算的生成的“图”画出来,就是神经网络的结构,其中是没有权重的。其次再将权重加载,然后填充进去,生成新的pb文件,然后将文件freeze一下,也就是冻图,就会获得最终的文件。

早上时候我没怎么听懂老师到底说了什么,就一味的自己摸索,也没有摸索出个什么东西来,问了同学,同学们的进度也不太一样,最后还是请教了一下助教,助教手把手教学让我弄懂了个中原理,遇到困难还是要多寻求帮助。

将新生成的pb文件替换掉就有的pb文件,之前老是无法通过,之后才发现自己没有更改一些代码,在看资料的过程中还是不够仔细,在手机上生成之后,对输入录音的判断非常不准确,发现输入同样的语句,输出结果虽然不正确,但是总是集中在几个循环。我们又认为可能是过学习的结果,所以就测试了之前的epoch较少的版本。结果是这些版本识别准确度也很低。经过一段时间的思考之后,可能是代码不能正确的把权重输入文件,那么就可能是系统产生了权重并将其加入了model之中。

我们这一组一直有个比较大的问题就是apk文件总是因为这样那样的原因不被build出来,后来我们才发现build功能有直接生成apk的,也算是学到了一个小技巧。