2016012144
沈偉棟學習日誌記錄(以日子分隔)
目录
2017年6月30日
文字記錄
主要完成pynq板调试与安装,其中主要花了較長時間在安裝PYNQ上。 根据老师说指导我们并提供了在pyno.io上的PYNQ入门指南进行初步 的简介,主要硬件为PYNQ开发板、SD卡以及网线等。 其中,安装时也需要安装到Python语言程式以及利用Jupyter进行各种调节,详情可参与pyno.io上的官方指南。 这天,我对于PYNQ这个“微型电脑”开始有了初步了解,感到很神奇并且在安装完成时有一点期待。
圖片記錄
2017年7月1日
文字記錄
- 上午主要实验了 PYNQ 中 USB Webcam 与 OpenCV Filters Webcam 功能的实现
- 下午主要对TensowFlow tfExample进行操作性练习以试图熟悉与理解
在tfExample中进行了TensorBoard展示的操作试验:TensorBoard是TensorFlow自带的图形化工具,可以展示出网络训练(内部权重和偏振)的效果,使用了MNIST数据集的训练过程并以TensorBoard展示。
通过这些天,尤其这天,对于本来基本上没有学过编程(一看就觉得无所适从的我)来说是个好的开始,只少在操作中透过老师们与同学们的协助与交流后令我有了大致的体会。以及也能看出PYNQ这个“电脑”里的各种功能对于原本需要复杂程序运行的简化使使用者/开发者能更简便地编码指令(包括用到Python语言,TensorFlow系统)。
- 值得一提的是:当天老师跟我们讲解了Deep Learning -tutorial 的一些基本概念与原理,以及关于神经网络训练的相关内容。
圖片記錄
- 以下为PYNQ 中 USB Webcam 与 OpenCV Filters Webcam 功能的效果图
其中
- 可见按PYNQ中范例语句实验操作效果如下:
- 以下为TensorBoard展示MNIST数据训练结果
2017年7月2日
文字記錄
当天,早上在动手实验操作学习体验方面,进行了两个主要部分: 其一关于Keras实践。Keras简单来说便是TensorFlow的封装并进一步集成Keras框架并由此达到机器学习模型、训练、预测的过程。 简单地了解和尝试网络训练后到下一环节,可谓本日主要的“重头戏”。
也就是其二:关于语音识别网络这一主要部分(本挑战学习核心内容),经过老师指导,简单了解和学习到语言识别网络中较为简单的三层全连接网络和比较准确率更优的CLDNN网络 然后,铺垫过后主要是进行TensorFlow/ Keras的使用 并最终其实期望大致训练的效果。 当中,大致的操作流程为:在Tsinghua i-Center的gitlab资源里下载提供的代码、并有老师提供音频数据(被调整统一为.wave ,且经过加干扰在原本为数不多的音频基础上获得大量!),然后在获得的文件夹audioNet里开始操作。在创建目录和修改代码后,开始进行训练——在该目标档案文件夹里运行python train.py 以及python client.py, 当中遇到了一些问题,包括cudnn的版本未成功被识别为装好(装了6不行而要5...)以及一些档案补充使得环境适当(cuda,cudnn合适存在对gpu起作用)可以进行Trainning,结果为需要运行大批数据,几乎整个下午(粗略估计大于2小时),明天应当有结果(生成一系列文件),并继续观察。这就令我初步见识到神经网络训练的过程了(非常初阶)! 值得一提的是:这天我们继续有老师再讲解深度学习原理以及一些(对我来说陌生的词)激活函数,人工神经网络,损失函数的量化输出结果和实际结果的差距,常用调节权重的方法中随机梯度下降法,一些Deep Learning的常用术语等。
圖片記錄
以下为训练过程摄影图片:
2017年7月3日
文字記錄
- 主要初步实现在基于Android系统而在手机上实现“由语音识别成文字”
本日主要为在Android系统手机上实现语音识别,使用Android studio编写程序(其中老师也有提供一些和指引),并根据早前人们录音的数据和训练的结果的基础下进行简单的语音识别(共24句,当中以噪音形式增加了原本为数不多的声音样本,如昨天说记载)。
其中,利用到Keras, Tensorflow, Android Studio等程式,而代码则由已给予及经过老师指导与给与的资源指引下自己尝试操作并最终经由Android Studio生成一个.apk文件以在手机上实现App形式的以文字形式输出的语音识别。在老师提供的资源中有很多执行命令与代码,并不全然理解,但定性来看可归难出其初衷。在运行过程中,遇到了一些大小问题,简单的其实只要保持冷静在过程中调整过来回头再看大多便可发现不妥,与其他同学们请教与交流也是良好的团队意识过程的阶段。过程中最大感受便是在一些意外时,向大家主动询问是需要的,不过前提当然是要在冷静下来分析过后才去。而且,有这个过程中我明白到太心急慌乱地一直做,倒不如调整一下,再仔细检查与思考现在的目标更为重要,可见很多时候“调整状态”是非常重要的。(BTW对我来说遇到电脑编程相关的东西是超出我“现时认知范围”的、尽管没有真正学过,但这并不是理所当然的借口,唯有尽量记忆与理解为开始再配以体会教程中的说明与实际操作加上与人们的交流被加指导过程中尝试得以进步~)
最后在,经过上下午的安装环境、调试程序等操作,终于在前人(以往同学老师)的资源贡献下,生成了成功的在手机运行的“语音识别”Android App。
- 值得一提的是,回顾这一天,在整理提供与指引的代码及使用Android Studio的指导流程后,由于我使用的Samsung Galaxy 型号手机出了一些未知/未被解决问题而连接电脑时没有侦测到(也就是无法像教程那样进入开发者模式下进行USB debugging模型运行并生成app),所以在大家都以教案的方法USB调试完成后,我让继续留了一段时间,做了一些调整与测试,最终返回初衷,在Android Studio那里的Build功能里有直接Build apk的运作并成功以另一途径解决了问题(我把生成的.apk档案上传到云端再从手机下载使用【也许不是很有效率的方法,但至少是在一个阶段的顺利过渡临时方案】)。
圖片記錄
- 其中,App在手机的状况如下图