浅析基于FPGA的Mish函数实现
2021-02-03肖祥位蔡敬菊徐智勇
科学与信息化 2021年3期
关键词:资源
肖祥位 蔡敬菊 徐智勇
1. 中国科学院光电技术研究所国家光束控制重点实验室 四川 成都 610209;2. 中国科学院光电技术研究所 四川 成都 610209;3. 中国科学院大学 北京 100049
引言
随着计算机处理能力的提高,神经网络再次成为人工智能领域的研究热点。目前主流的方式仍然是基于CPU/GPU对算法进行实现,但由于神经网络算法具有庞大的计算量,使得在传统平台上实现存在实时性不强、功耗过高、体积较大等缺陷,极大地限制了神经网络算法的落地应用。因此目前该方向的理论研究和实际应用方面存在着较大的脱节。现场可编程门阵列(FPGA)可以通过硬件描述语言对电路进行描述,可以构建大型电路实现并行计算。使用FPGA实现AI算法,极大地加快了计算速度,提高实时性,降低系统功耗。为AI算法落地提供强有力的支撑。
Mish函数是YOLOv4及其衍生版本里面用得较多的一个激活函数,是整个网络中实现非线性运算的关键。Mish函数的使用使得整个网络检测效果得到了很大程度的提升,它的非单调平滑性相比于其他激活函数有着更好的表现。想使用FPGA对YOLOv4及其衍生网络加速则不可避免地要在FPGA上实现Mish函数。本文首先对Mish函数进行介绍,提出几种不同的实现方案,通过对不同方案的对比分析,最终确定以多折线拟合与查找表组合的方式进行实现。并通过对硬件的实现分析,确定其误差在较小的范围,为使用FPGA加速YOLOv4及其衍生网络奠定基础[1]。
1 Mish函数简介
卷积神经网络中激活函数是对线性卷积输出的结果进行非线性计算 以此来模拟神经网络中的神经元模型。……
登录APP查看全文
