代码中有一个思想非常有价值。因为PYNQ的性能有限,所以在fft前,程序先对音频进行降低采样率(码率)的处理,有利于快速计算结果。这种处理对于关键信息的损失很小,提高了效率,虽然不一定是必要的,但是是很有用的。
==6月31日:熟悉TensorFlow==
上午不幸迟到,不知道周末也要算迟到……
上午的任务主要是昨日延续,在PYNQ Board上做了一下使用Webcamera的一个项目。主要收获是了解了Pillow库的使用,除了代码中给出的打开文件、颜色空间的转换、旋转(open, convert, rotate)等,我们还了解了一下PIL的许多其他方法,比如裁切(crop),获取尺寸(size)等等。PIL库在图像处理上非常有用,mark住了。
接下来的一个项目复杂一些,是实时的图像边缘识别,这个也顺利跑下来了。闲得没事干的马信还把代码研究了一番。
下午名义上的任务是在工作站上跑一个使用TensorFlow的程序,但是实际上大多时间还是用来配置环境了。主要问题是,老师了解到我的机器没有CUDA,就让我安装CUDA再重新配置TensorFLow。但是连接我们的工作站的那个交换机好像是有防火墙的,速度奇慢,从nVidia直接下载CUDA是不可能了。所以就一台机子一台机子的找。共享服务器上只找到CUDnn的库文件,没有CUDA。助教说共享服务器上应该是有CUDA安装文件的,但是迷之消失了。最后还是在一台机子上找到了这个庞大的文件,然而那台机子上传到共享服务器的速度也是只有两三兆,而我从共享服务器下载的速度就只有两三百K了,不可行。手机做媒介拷贝也不行,Win Server 2012因为安全性的原因好像不识别MTP设备。所以就用助教的闪存盘,拷贝进去后发现,我的这台机子识别不了这个闪存盘。至此已经下午四点多了,我,卒。
小小吐槽一下,我们用的这台新组装的机子安装的系统居然是雨林木风的,我以为这家公司五年前就销声匿迹了。然后盗版手段也非常低级,C盘里有一个文件夹Windows.Old,系统状态显示未注册,没跑了,这个显然是用去年win7/8/8.1免费可回滚升级win10的那版升级系统做的盗版系统,有可能仅仅是做了个镜像,然后嵌入个YLMF的logo,安上一堆给了钱的垃圾软件……何必呢,清华信息服务中心上有授权了的Windows镜像的我记得,安那个就好了。
继续说正事儿,因为安装CUDA的事算是吹了,所以我决定直接用CPU版的TensorFlow了。问题是一跑py,发现,发现连Pillow和scipy这些库都没装,那就装吧,装scipy的时候出依赖bug,装不上。真惨了,幸亏有助教在,给指了一条明路,把python卸载了,直接从TUNA下载Anaconda。这时候我才知道Anaconda原来是python集成了很多常用库和所需环境的一个版本,省去了大量配置的麻烦,没用过python的我算是吃了亏了……
配置完了后,跑代码,非常顺利,十轮,CPU上也是一秒不到的事,早知CPU也能这么快,何必折腾CUDA呢。我再看计算机配置,GTX970,12核3.5GHz i7-xxxxK,想想,相对来说这GPU也没有特别强啊,不如当时就直接跑CPU版本了。结果也在浏览器中看到了,不过用Chrome就加载不出,Edge可以。晚上的时候,马信又去了实验室,补跑了一下下午的工程,据他说,Chrome突然出现了问题,中文里混了许多方块乱码。这机子真是太诡异了。