2016013212
6月29日:配置服务器环境
继前一日了解了项目目标并组装了任务所需工作站后,这一日的主要任务就是配置服务器端所需环境。
主要工作为:
- 安装并配置Python 3.5
- 在Python中安装并配置TensorFlow库
值得注意的是,Win10的权限管理较为严格,在我们所使用的那台新机器上,由于未知的配置原因,仅仅使用管理员模式运行也不能成功安装Python。最终问题的解决方法是,创建一个管理权限的explorer来运行安装程序。
在安装TensorFlow的过程中,也有值得注意的地方。我们的新机器虽然是n卡,但是也没装CUDA,所以GPU版的TensorFlow库是不能用了,虽然感觉很浪费机器资源……所以只能用CPU版的。CUDA比较巨大,而且安装不方便,希望下一次开设此挑战项目的时候能够在机器上预装CUDA。
此外,该机器虽然安装了MS VC++ Library,但是其中一个DLL文件版本不对导致TensorFlow安装失败,必须从外网找到合适版本的DLL置于System32来解决此问题。最烦人的是安装过程显示的错误信息与该实际问题毫无关系,不过StackOverflow上提供了很有效的解决方法。
6月30日:配置并熟悉PYNQ Board环境
这一天的工作与工作站本身无关了,主要是配置PYNQ。XILINX已经预先写入SD卡,PYNQ也配置好从SD卡启动,这给让我们可以快速开始工作。
PYNQ官网提供的指导非常详尽,只需要按照指示配置计算机直接连接PYNQ的以太网静态IP(192.168.2.0-255),就可以让PYNQ识别所连接的计算机。使用Webkit内核的浏览器访问PYNQ的地址和指定端口,就可以显示XILINX对计算机的界面。界面中提供的功能较多,我们没有一一研究,主要了解了Terminal和代码编译器。
在编译器中,我们依照示例输入、阅读并调试了LED灯程序和录音回放、频谱分析的两个程序。我虽然此前从未使用过Python,但是也很快理解了代码的大意。Python的可读性很强,很接近自然语言,而且代码的冗余信息很少,变量往往不需要声明可以直接赋值使用,这对于编写代码者来说是非常友好的。当然,在这么短的时间内,学通Python也一定是不可能的,所以输入和调试这些代码主要是了解处理声音数据时,常用的库、类和方法有哪些。根据指导书,除了基本的板载元件对应的类和方法(使用板载mic录音并储存文件),fft也是非常重要的,这能得到短时的频率分布;紧接着是通过plot得到频谱图,这是适合传输到服务器进行分析的数据。
代码中有一个思想非常有价值。因为PYNQ的性能有限,所以在fft前,程序先对音频进行降低采样率的处理,有利于快速计算结果。这种处理对于关键信息的损失很小,提高了效率,虽然不一定是必要的,但是是很有用的。