[发明专利]基于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;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智芯原动科技有限公司,未经北京智芯原动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710974484.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top