安装ndk之类的东西就不用说了。
OpenBlas优化效果测试
我目前测试三个版本编译的OpenBlas效果,分别是32位单线程,64位单线程,32位多线程
测试为300次网络前向耗时,网络结构为[360, 1024, 1024, 1024, 1024, 1024, 4375]。
使用OpenBlas优化
当时是需要对一个终端耗时任务做矩阵加速,我选了OpenBlas开源方案,事实证明在ARM平台上能用的开源的方案中,OpenBlas做的算相当可以的了。以后有时间还想自己实现一下矩阵乘法的加速。做优化这个过程还是很吸引人的。
CMake使用外部链接库
在Linux下不想每次写Makefile自然就想到替代工具了。由于Clion支持的是cmake,所以我也就粉了它。
Grub手动引导Ubuntu启动
原先的Ubuntu不小心整崩溃了,在windows下删掉分区,重新安装之后总是找不到boot loader,出现Grub引导界面,如下
RedHat下GCC升级安装的若干问题
大三玩SC的时候,手动升级了好几次GCC,还有Glibc的库(升级失误,整废一个节点),遇到问题在此做个备注。
Boost.Python和Boost.Numpy的使用
习惯上python之后,我很自然的就想到怎么和C++代码结合的问题了,毕竟核心计算模块不敢用python做,之前用过swig,但是感觉不够灵活,方便。后来找到了boost库,开始上手会遇到一些乱七八糟的问题,但是做完了回头看看,还是蛮方便的,起码相对于swig来说。
EM算法对GMM模型进行参数估计
之前学习的EM算法很抽象,以GMM模型为例,看看EM算法如何通过期望-最大化的迭代过程,进行参数的有效估计的。
EM算法
EM算法优化的目标是观测数据对参数$\theta$的对数似然函数,如果不存在隐变量的话,可以直接用最大似然法估计,在隐变量存在的情况下,使用EM算法进行迭代估计。本篇是当时学李航的统计学习方法写下的笔记,可能有理解不正确的地方。
Kaldi中的GMM模型
这部分主要记录的是GMM在kaldi中的实现。