非算法程序员如何深入学习AI/深度学习
在网上找了一些例子之后,深度学习的神秘面纱已经被我们揭开一角,从原理上好像就那么一回事,但是深入的又不是很懂,事实上相信很多朋友都遇到了这样的情况,那么如何深入学习呢?笔者这里提供了一个思路供借鉴。
首先自我说明一下,笔者之前搞嵌入式的,因此不是玩算法的大拿,之前对机器学习也知之甚少,因此直接去搞算法优化之类没什么感觉,既然如此,我们的想法是先工程化搭个系统玩玩,然后在该工程的基础上进行某个局部的优化,从而一步步深入了解,目标直指fellow!!!(开个玩笑)
主体思路如下
一、先搭一个完整系统玩玩
摄像头/麦克风输入 -> 笔记本/树莓派 运行 物体检测/人脸识别/语音识别 -> 结果显示
*注:这里可以随意选一个方向,笔者认为图像相对简单些,语音门槛高一些,因此果断先选择图像做物体检测,关于硬件,家里有带摄像头笔记本就直接用,没有就买个树莓派+摄像头,500RMB搞定*
二、对以上系统进行加速
如 加入计算资源,GPU/VPU/DSP等都可以,关键要有合适的接口,能连接到我们的笔记本/树莓派(这一步的计算资源不容易找,略过也可,这一步的关键在于我们加速的过程中会遇到问题,从而引导我们在解决问题的过程中对加速点、对整个系统有更深入的了解)
三、以上的实验系统搭完了,关于计算加速也有感觉了,是时候往实际应用上靠一靠了
这个时候,作为底层嵌入式程序员,想当然的就想把我们的算法放到低功耗嵌入式设备上跑一跑了,那么我们就做一做MCU + RTOS的系统搭建了,这个时候就需要精简模型、精简功能了。
这里有两件事情:
1. 模型、功能的精简,这里的验证工作就可以放到第一步、第二步搭建的系统上去做,或者放到云上做都是可以的。
2. 嵌入式系统上的框架移植或搭建
四、上面一步做完,基本我们也算半个专家了,接下来我们还要进阶
这个时候,我们会发现低功耗的嵌入式做大型网络计算能力也不够了,那么是不是很自然地就想要加个异构资源辅助计算呢,加了计算资源之后就需要调整上面的框架,完善整个系统,做性能、存储资源、功耗方面的优化
目标设好之后,剩下的事情就是。。。 开工
欢迎指正交流
作者|莫一楠
- 点赞
- 收藏
- 关注作者
评论(0)