本发明专利技术提供一种应用于边缘计算的卷积神经网络计算方法,包括如下步骤:S1.获取边缘计算设备的硬件缓存总大小以及当前卷积层参数占用空间;S2.根据硬件缓存总大小与当前卷积层参数占用空间的关系,选择卷积计算方式进行计算;其中,当前卷积层参数达到设定阈值时,将当前卷积层拆分后分别进行计算,再将各自计算结果进行拼接;S3.输出卷积推理结果。本发明专利技术通过对当前卷积层所需缓存空间进行分析,并根据权重参数与特征图所需缓存空间大小,设置卷积在硬件上存储采用不同工作模式,并进一步给出卷积拆分方法,解决计算量较大的卷积层成为网络推理速度的瓶颈的问题,避免对数据进行低比特压缩处理,因此不会损失网络精度。
A convolution neural network algorithm for edge computation
【技术实现步骤摘要】
一种应用于边缘计算的卷积神经网络计算方法
本专利技术属于人工智能
,具体涉及一种应用于边缘计算的卷积神经网络计算方法。
技术介绍
DNN,DeepNeuralNetwork的简称,深度神经网络。边缘计算起源于传媒领域,是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。边缘计算处于物理实体和工业连接之间,或处于物理实体的顶端。人工智能近几年实现了爆炸式发展,深度神经网络(DeepNeuralNetwork)可以说是其主要的推动力。深度神经网络已广泛应用于计算机视觉、语音识别、自动驾驶等诸多领域中。虽然深度学习在计算机视觉中的识别性能已经远超于传统的机器学习算法,但在智能停车场、智能卡口以及自动驾驶等实时性要求较高的应用场景中,落地较少。随着深度神经网络的计算优化,计算硬件也由CPU+GPU、CPU+TPU,逐渐向CPU+FPGA以及ARM等边缘计算设备过渡,其计算实时性也有进一步提升。由于GPU、TPU具有强大的计算能力,并且CPU的兼容性强,目前caffe、Tensorflow以及Pytorch等深度学习框架已广泛应用。边缘计算端受限于其计算、内存限制,对小型计算网络如Lenet、MobileNet等网络可实现一键部署,但对Alexnet、Resnet50等大型计算网络支持欠佳。众所周知,神经网络的计算主要集中在卷积层的计算,计算量较大的网络,主要由于其卷积层数量多、单个卷积层计算量大。在卷积层计算时,通常需要将权重参数(训练参数)以及输入特征图读入缓存中,进行计算,但受限于缓存大小,某些卷积层无法计算。通常将这些卷积层,以循环方式展开放在FPGA端,或直接将其放在CPU端进行。通常针对计算量较大的网络,在边缘计算端,通常有以下三种方式,第一,采用CPU与FPGA异构计算方式,将受限于存储空间大小的卷积层,放在CPU上计算,而后将其计算结果传输到FPGA上以进行下一层的计算;第二,卷积层在FPGA上计算,根据卷积计算特征,将卷积计算以循环方式展开进行计算;第三,在FPGA上增加编码以及解码模块,以低比特存储权重以及输入特征图,压缩权重及特征图的内存空间。但上述三种方法均存在缺陷,方法一,将计算量较大的卷积层放于CPU端计算,在卷积计算前后,存在大量的数据传输,不仅增加硬件设计成本,而且影响推理速度;方法二,FPGA的计算特点是逻辑门计算,对矩阵计算性能较好,但逻辑判断语句在FPGA上受限很大,直接成为整体网络推理计算的瓶颈;方法三,本质上是改变权重以及特征图的数据范围,比如由32比特变成比特甚至更低比特,这种方法通常会降低原有网络的精度。此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种应用于边缘计算的卷积神经网络计算方法,是非常有必要的。
技术实现思路
针对现有技术的上述在有限硬件资源下,神经网络中某些层计算量大,导致推理速度严重下降,而改变参数数据位宽,又会导致网络精度下降的缺陷,本专利技术提供一种应用于边缘计算的卷积神经网络计算方法,以解决上述技术问题。本专利技术提供一种应用于边缘计算的卷积神经网络计算方法,包括如下步骤:S1.获取边缘计算设备的硬件缓存总大小以及当前卷积层参数占用空间;S2.根据硬件缓存总大小与当前卷积层参数占用空间的关系,选择卷积计算方式进行计算;其中,当前卷积层参数达到设定阈值时,将当前卷积层拆分后分别进行计算,再将各自计算结果进行拼接;S3.输出卷积推理结果。进一步地,当前卷积层参数占用空间包括当前卷积层的权重参数占用空间总大小、当前卷积层的权重参数运算所需空间以及特征图空间;设定边缘计算设备的硬件缓存总大小为Totalcbuf,设定当前卷积层的权重参数占用空间总大小为Totalweight,设定当前卷积层的权重参数运算所需空间为Minweight,设定特征图空间为Totalfeature。进一步地,步骤S2具体步骤如下:S21.比较判断是否满足Totalweight+Totalfeature≦Totalcbuf;若是,进入步骤S22;S22.判定边缘计算设备直接进行卷积计算,在硬件缓存读取当前卷积层的所有权重参数与特征图,依次进行卷积计算,进入步骤S3。若当前卷积层权重及特征图可全部读入边缘计算设备的硬件缓存中时,可直接计算卷积。进一步地,步骤S21中,若不满足Totalweight+Totalfeature≦Totalcbuf,进入步骤S23;S23.比较判断是否满足2*Minweight+Totalfeature≦Totalcbuf;若是,进入步骤S24;S24.判定边缘计算设备采用ping-pong模式计算卷积,硬件缓存对一个权重参数与特征图进行计算的同时,读入下一个权重参数等待计算,直至卷积计算完成,进入步骤S3。若特征图可全部放于硬件缓存中,以及2倍的Minweight存储在硬件缓存中,即权重的读取与计算采用ping-pong模式,在计算一个Minweight的同时,可将下一个Minweight读入硬件缓存中进一步地,步骤S23中,若不满足2*Minweight+Totalfeature≦Totalcbuf,进入步骤S25;S25.比较判断是否满足Minweight+Totalfeature≦Totalcbuf;若是,进入步骤S26;S26.判定边缘计算设备采用等待模式计算卷积,等待硬件缓存完成一个最小空间权重参数与特征图的计算之后,读入下一个最小空间权重参数,依次进行卷积计算,进入步骤S3。进一步地,步骤S25中,若不满足Minweight+Totalfeature≦Totalcbuf,进入步骤S27;S27.判定边缘计算设备将当前卷积层进行拆分,硬件缓存将特征图拆分成若干子特征图,依次将各子特征图与权重参数进行卷积计算。进一步地,步骤S27中,特征图包括宽度方向、高度方向以及数量方向;步骤S27具体步骤如下:S271.判断特征图沿着数量方向拆分还是沿着宽度高度方向拆分;若是沿着数量方向拆分,进入步骤S272;S272.硬件缓存将特征图沿着数量方向进行拆分,拆分成N个子特征图,同时将权重参数进行拆分,拆分成N个子权重参数;S273.获取N个子特征图空间中最大的记为Maxsplit_feature,获取N个子权重参数运算所需空间中最大的记为Maxsplit_weight;S274.判断是否满足Maxsplit_feature+Maxsplit_weight≦Totalcbuf;若是,将拆分后子权重参数分别与拆分后子特征图进行卷积计算,得到N个输出特征图,沿着数量方向将N个特征图进行相加,进入步骤S3;若否,增大N的取值,返回步骤S271。在数本文档来自技高网...
【技术保护点】
1.一种应用于边缘计算的卷积神经网络计算方法,其特征在于,包括如下步骤:/nS1.获取边缘计算设备的硬件缓存总大小以及当前卷积层参数占用空间;/nS2.根据硬件缓存总大小与当前卷积层参数占用空间的关系,选择卷积计算方式进行计算;其中,当前卷积层参数达到设定阈值时,将当前卷积层拆分后分别进行计算,再将各自计算结果进行拼接;/nS3.输出卷积推理结果。/n
【技术特征摘要】
1.一种应用于边缘计算的卷积神经网络计算方法,其特征在于,包括如下步骤:
S1.获取边缘计算设备的硬件缓存总大小以及当前卷积层参数占用空间;
S2.根据硬件缓存总大小与当前卷积层参数占用空间的关系,选择卷积计算方式进行计算;其中,当前卷积层参数达到设定阈值时,将当前卷积层拆分后分别进行计算,再将各自计算结果进行拼接;
S3.输出卷积推理结果。
2.如权利要求1所述的应用于边缘计算的卷积神经网络计算方法,其特征在于,当前卷积层参数占用空间包括当前卷积层的权重参数占用空间总大小、当前卷积层的权重参数运算所需空间以及特征图空间;
设定边缘计算设备的硬件缓存总大小为Totalcbuf,设定当前卷积层的权重参数占用空间总大小为Totalweight,设定当前卷积层的权重参数运算所需空间为Minweight,设定特征图空间为Totalfeature。
3.如权利要求2所述的应用于边缘计算的卷积神经网络计算方法,其特征在于,步骤S2具体步骤如下:
S21.比较判断是否满足Totalweight+Totalfeature≦Totalcbuf;
若是,进入步骤S22;
S22.判定边缘计算设备直接进行卷积计算,在硬件缓存读取当前卷积层的所有权重参数与特征图,依次进行卷积计算,进入步骤S3。
4.如权利要求1所述的应用于边缘计算的卷积神经网络计算方法,其特征在于,步骤S21中,若不满足Totalweight+Totalfeature≦Totalcbuf,进入步骤S23;
S23.比较判断是否满足2*Minweight+Totalfeature≦Totalcbuf;
若是,进入步骤S24;
S24.判定边缘计算设备采用ping-pong模式计算卷积,硬件缓存对一个权重参数与特征图进行计算的同时,读入下一个权重参数等待计算,直至卷积计算完成,进入步骤S3。
5.如权利要求4所述的应用于边缘计算的卷积神经网络计算方法,其特征在于,步骤S23中,若不满足2*Minweight+Totalfeature≦Totalcbuf,进入步骤S25;
S25.比较判断是否满足Minweight+Totalfeature≦Totalcbuf;
若是,进入步骤S26;
S26.判定边缘计算设备采用等待模式计算卷积,等待硬件缓存完成一个最小空间权重参数与特征图的计算之后,读入下一个最小空间权重参数,依次进行卷积计算,进入步骤S3。
6.如权利要求5所述的应用于边缘计算的卷积神经网络计算方法,其特征在于,步骤S25中,若不满足Minweight...
【专利技术属性】
技术研发人员:郭韶燕,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。