关于本科期间参加人工智能方向竞赛的建议

比赛建议

作者本人经历

本科期间我参加过的竞赛包括2020Intel杯电赛嵌入式邀请赛(国二)、2021电赛无人机赛题、2020和2021的华为云无人车挑战杯(全国第4)、2020和2021的中国高校计算机大赛人工智能创意赛(国二、国三)、2020集成电路创新创业大赛(国三)。还有例如Nv和阿里云举办的异构计算挑战赛(TensorRT加速)、两届的Xilinx全球自适应计算大赛(都是获得发放免费硬件资格的项目)、RoboMaster2021全国二等奖(雷达站负责人)。
其中的工作都是集中与目标检测和分类算法的实现和硬件加速

何为硬件加速

简单讲就是利用硬件的特点,完成高效计算,减小推理的时延和功耗。目前该领域的方向主要有:CPU(OpenVINO)、GPU(CUDA、TensorRT等)、专用ASIC(华为Ascend 310,910、Intel神经计算棒系列、寒武纪思元系列等)、FPGA(Xilinx ZYNQ、ZYNQ UltraScale+、Alveo、ACAP、KRIA系列等)。设计到的软硬件工具非常多和复杂,并且每一类都有其优势和缺点,有时需要根据具体应用来选择。同时,不同厂商有着不同的设计策略(或者说刀法),定位相同的产品存在竞争,不同定位的又在绝对性能上较劲。本专栏就是为了梳理这些问题

建议

根据自己的专业方向选择

首先,虽然人工智能这个行业很火,但也很卷。我算是独辟蹊径选择了硬件加速这个小方向。一方面是处于对硬件的喜爱,另一方面就是不太看好短时间内算法的突飞猛进,而且算法开发往往需要很多算力支撑。
其次,需要考虑你本身的专业方向。我是电子信息工程方向,所学习的课程包括数字信号处理、信号与系统、高数高代概率论等课程。这些一定程度为人工智能的学习和硬件部署打好基础。同时,本人比较热衷于开发,对硬件很感兴趣,再加上自己在时间和金钱上的投入,才能有上面还不错的成绩。
所以在选择时要考虑自己的专业方向和专业能力,如果你能力强能把上述前置内容都学会,那当然更好。

前期多参考别人的项目,提高工程能力

我的学习路线大致如下:首先是在树莓派上学习Linux的使用和python环境的配置等内容,其次就是在树莓派上运行了Intel计算棒的例程,之后购入Jetson学习了GPU加速和TensorRT使用,之后在比赛中熟悉Ascend芯片的使用,以及Intel OpenVINO HDDL-R8加速卡上的开发。并在之后完成了深度学习框架从算法开发到部署在GPU上的全部流程。再之后学习FPGA的深度学习模型部署,并在两年连续申请了Xilinx自适应计算大赛的硬件。

多借助外部资源提升自我

我的很多项目硬件都不是自己花钱。自己需要出辅助性的部分。比如我开始学算法借助Colab的资源和百度AIStudio的资源。学习树莓派是自己买的,学习GPU是借助学校大创的经费和RoboMaster的队内经费。学习ASIC开发是借助Intel杯比赛的经费,学习Ascend是借助华为云无人车比赛的经历。学习FPGA是借助Xilinx自适应计算大赛的机会。总之,做好准备,寻找机会,抓住机会。

从高层到底层的开发

如果一开始让你看到底层代码,往往会很劝退。所以建议先从项目的功能性上入手,体会各个功能如何通过调用实现,尝试把多个功能组装。这基本就是你毕设的水平。在开发能力达到一定程度时,阅读算法源码,阅读硬件部署的源码(layer转换和GPU、ASIC编程等),对已有的东西进行优化和提升,这是条循序渐进的道路。

你可能感兴趣的:(本科深度学习开发经验和工具,本科毕设,人工智能全栈,人工智能)