[发明专利]基于Neon指令的卷积神经网络的算法优化方法及装置在审
申请号: | 201710974484.3 | 申请日: | 2017-10-19 |
公开(公告)号: | CN107704921A | 公开(公告)日: | 2018-02-16 |
发明(设计)人: | 朱明;曾建平;张智鹏;耿磊 | 申请(专利权)人: | 北京智芯原动科技有限公司 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06F17/15 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100101 北京市朝阳区北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 neon 指令 卷积 神经网络 算法 优化 方法 装置 | ||
技术领域
本发明涉及图像处理、视频监控以及卷积神经网络,特别涉及基于Neon指令的卷积神经网络的算法优化方法及装置。
背景技术
随着人工智能的快速发展,深度学习被越来越多地引入到图像处理、模式识别领域中,而且在解决相关问题方面表现出色。其中,卷积神经网络(convolutional neural networks,简称CNN)作为深度学习的一种模型结构,尤其擅长处理图像特别是大图像的相关机器学习问题,已被广泛应用,得到最深入研究。
然而,在图像处理及模式识别的实际应用中,卷积神经网络一般是采用较多的网络层实现,其运算复杂度较高,包含了大量密集的图像卷积运算,耗时比较长,直接影响了基于卷积神经网络的相关算法的性能,限制了其应用,特别是在视频监控前端嵌入式设备应用中,如ARM平台等。
目前从卷积神经网络算法优化的技术角度来看,针对卷积运算的优化主要采用矩阵加速,即通过将卷积核矩阵和输入图像矩阵变换为两个大的矩阵,通过大矩阵乘积得到卷积结果。这样就把卷积运算转换为了矩阵运算,就能够在一些支持第三方矩阵运算加速库的平台中实现矩阵加速,使卷积神经网络算法性能得到较大提升。但是对于一些不支持第三方矩阵运算加速库的嵌入式ARM平台,卷积神经网络算法耗时仍然很长,实时性不好。
Neon指令是适用于ARM Cortex-A系列处理器的一种128位SIMD(Single Instruction,Multiple Data,单指令、多数据)扩展结构。从智能手机和移动计算设备到HDTV,它已被公认为是多媒体应用领域中最为优越的处理器之一。Neon指令采用专门设计,简化了软件在不同平台之间的移植,为类似Dolby Mobile的密集型多媒体应用提供了低能耗和灵活的加速功能。
综上所述,目前需要提出一种能够有效地降低耗时的适用于ARM平台的基于Neon指令的卷积神经网络算法优化方法。
发明内容
有鉴于此,本发明的主要目的在于降低计算资源消耗,实现卷积神经网络的算法优化。
为达到上述目的,按照本发明的第一个方面,提供了基于Neon指令的卷积神经网络的算法优化方法,该方法包括:
第一步骤,将卷积层的卷积核图像进行矩阵化处理,获取对应的A矩阵,并将A矩阵列数按照4倍数对齐;
第二步骤,输入待卷积图像,将待卷积输入图像进行矩阵化处理,获取对应的B矩阵,并将B矩阵行数按照4倍数对齐;
第三步骤,对B矩阵进行转置变换,获取转置矩阵Bt;
第四步骤,计算A矩阵和Bt矩阵的行与行点积;及
第五步骤,采用Neon指令进行并行优化处理。
进一步地,所述第一步骤包括:对于卷积层中CNum个卷积核大小为N×N的卷积核图像,依次将每个卷积核图像作为一行矩阵数据,获取行数为CNum、列数为N×N的A矩阵;将A矩阵的列数扩展为4的倍数,扩展的每列矩阵内数值为0。
进一步地,所述第二步骤包括:输入需要卷积层处理的待卷积图像;根据N×N的卷积核依次进行卷积滑窗处理,以获取MNum个经过卷积滑窗处理后的卷积特征子图像;依次将每个卷积特征子图像作为一列矩阵数据,获取行数为N×N、列数为MNum的B矩阵;将B矩阵的行数扩展为4的倍数,扩展的每行矩阵内数值为0。
进一步地,所述第三步骤将B矩阵的行与列进行转置变换,以获得行数为MNum、列数为N×N扩展成4倍数对齐的Bt矩阵。
进一步地,所述第五步骤包括:在Neon指令中,采用加载指令vld1q_f32进行4个浮点数的加载操作;采用乘法指令vmulq_f32进行4个浮点数的乘法运算操作;采用加法指令vaddq_f32进行4个浮点数的加法操作;采用拆分指令vget_low_f32和vget_high_f32分别获取2个浮点数;采用按对加法指令vpadd_f32先进行vget_low_f32、vget_high_f32内2个浮点数的相加,再对相加的结果进行相邻累加。
按照本发明的另一个方面,提供了基于Neon指令的卷积神经网络的算法优化装置,该装置包括:
卷积核图像矩阵处理模块,用于将卷积层的卷积核图像进行矩阵化处理,获取对应的A矩阵,并将A矩阵列数按照4倍数对齐;
待卷积输入图像矩阵处理模块,用于输入待卷积图像,将待卷积输入图像进行矩阵化处理,获取对应的B矩阵,并将B矩阵行数按照4倍数对齐;
矩阵转置变换模块,用于对B矩阵进行转置变换,获取转置矩阵Bt;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智芯原动科技有限公司,未经北京智芯原动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710974484.3/2.html,转载请声明来源钻瓜专利网。