深度可分离卷积神经网络处理架构/方法/系统及介质与流程

文档序号:16756189发布日期:2019-01-29 17:23阅读:405来源:国知局
深度可分离卷积神经网络处理架构/方法/系统及介质与流程

本发明属于集成电路处理器芯片架构及电路设计技术领域,涉及一种处理架构、方法及系统,特别是涉及一种深度可分离卷积神经网络处理架构/方法/系统及介质。



背景技术:

人工神经网络为代表的人工智能近年来取得了快速的发展,其已经广泛应用在了诸如安防、自动驾驶、无人机、智能音箱、医疗影像及消费电子等诸多领域。各国也都高度重视人工智能技术的发展,学术界和工业界都投入了大量的人力和物力来进行技术研发和产品落地。卷积神经网络是最常见也是目前应用最为广泛的一种人工神经网络算法模型,具有计算密集型和存储密集型的特征。

然而由于车载边缘计算等应用场景中的低延迟和低功耗的限制,现有深度可分离卷积神经网络的实现技术存在严重不足。深度神经网络技术在应用过程中存在占用计算量大、占用存储资源多、运算速度慢和消耗能量高的问题。基于传统通用处理器(cpu)的计算平台越来越难以满足应用过程中的性能要求。采用硬件加速器来代替cpu软件计算以此来提高深度神经网络运算速度和计算能耗,但是目前一些基于cpu+gpu(图形处理器),cpu+fpga现场可编程门阵列(fieldprogrammablegatearray,fpga)或cpu+asic(深度学习专用芯片asic)的深度学习异构计算平台主要在运行深度神经网络时,需要大量的数据计算和传输,其频繁地片外与片上间的数据传输造成了大量的能量消耗;中间计算结果和输出数据的片外存取也消耗了大量的功耗和数据带宽,无法实现能耗的最优。上述问题限制了其在低功耗、低延迟、高性能的移动边缘计算场景中的应用。

因此,如何提供一种深度可分离卷积神经网络处理架构/方法/系统及可读存储介质,以解决现有技术在运行深度神经网络时,需要大量的数据计算和传输,其频繁地片外与片上间的数据传输造成了大量的能量消耗,且中间计算结果和输出数据的片外存取也消耗了大量的功耗和数据带宽,无法实现能耗的最优,导致限制在低功耗、低延迟、高性能的移动边缘计算场景中的应用等缺陷,实已成为本领域技术人员亟待解决的技术问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种卷积神经网络处理架构/方法/系统及介质,用于解决现有技术在运行深度神经网络时,需要大量的数据计算和传输,其频繁地片外与片上间的数据传输造成了大量的能量消耗,且中间计算结果和输出数据的片外存取也消耗了大量的功耗和数据带宽,无法实现能耗的最优,导致限制在低功耗、低延迟、高性能的移动边缘计算场景中的应用的问题。

为实现上述目的及其他相关目的,本发明一方面提供一种深度可分离卷积神经网络的处理架构,包括:片上缓存器,用于缓存通过主机接口和直接存储器访问从所述深度可分离卷积神经网络的处理设备的片外存储器读取到的深度可分离卷积神经网络的输入特征值、与输入特征值一一对应的深度卷积权重值及逐点卷积权重值;至少一个深度可分离卷积运算引擎,与所述片上缓存器通信连接,用于对所述卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;及用于对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。

于本发明的一实施例中,所述深度可分离卷积神经网络处理架构还包括与所述深度可分离卷积运算引擎和主机接口通信连接的输出缓存器组。

于本发明的一实施例中,所述片上缓存器包括:特征值片上输入缓存器,用于缓存所述深度可分离卷积神经网络的输入特征值;权重值片上缓存器,用于缓存与输入特征值一一对应的深度卷积权重值及逐点卷积权重值;卷积运算结果片上缓存器,与所述深度可分离卷积运算引擎和输出缓存器组连接,用于缓存深度卷积的输出值和/或逐点卷积的输出值。

于本发明的一实施例中,每一所述深度可分离卷积运算引擎两侧都设置有特征值片上输入缓存器和输出缓存器组;其中特征值片上输入缓存器和输出缓存器组包括有若干独立的ram组成的存储单元,其数量和输入通道的并行度相关。

于本发明的一实施例中,所述深度可分离卷积运算引擎包括:与所述特征值片上输入缓存器和权重值片上缓存器连接的深度卷积引擎和与所述深度卷积引擎和权重值片上缓存器连接的逐点卷积引擎。

于本发明的一实施例中,所述深度卷积引擎包括:线缓存输入可重用结构,包括若干路线缓存单元和与每一路线缓存单元连接的多路选择器,用于缓存所述卷积神经网络的输入特征值;乘加运算结构,包括乘法器组和加法器,其中,所述乘法器组将输入的卷积神经网络的输入特征值和深度卷积权重值进行乘法运算;接着通过所述加法器对乘法器组的乘法运算的结果进行加法运算,以输出深度卷积的输出值。

于本发明的一实施例中,每路线缓存单元由若干移位寄存器构成。

于本发明的一实施例中,所述逐点卷积引擎包括:乘法器组,与所述权重值片上缓存器和乘加运算结构连接,用于将深度卷积的输出值与其对应的逐点卷积权重值进行乘法运算;加法器组,与所述乘法器组连接,将深度卷积的输出值与其对应的逐点卷积权重值的乘法运算结果加上偏置值再截断至预设的位长;累加器及fifo,用于将所述加法器运算结果进行累计,以先入先出队列输出。

于本发明的一实施例中,所述深度可分离卷积神经网络处理架构还包括:与所述片上缓存器通信连接的直接存储器访问;与所述直接存储器访问通信连接的主机接口;与所述卷积运算引擎、片上缓存器及主机接口通信连接的控制器,用于接收通过所述主机接口接收的控制指令,将该控制指令转换成控制信号,以使所述卷积运算引擎执行卷积运算,且若所述处理架构包括若干卷积运算引擎时,用于控制各个卷积运算引擎的运算步调一致。

本发明另一方面提供一种深度可分离卷积神经网络处理方法,包括:对所述深度可分离卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。

于本发明的一实施例中,所述对所述深度可分离卷积神经网络进行深度卷积运算,以生成深度卷积的输出值的步骤包括:读取所述深度可分离卷积神经网络的输入特征值;读取与输入特征值一一对应的深度卷积权重值;将所述深度可分离卷积神经网络的输入特征值和深度卷积权重值进行卷积运算后,以获取深度卷积的结果;对所述度卷积的结果进行非线性激活,以生成所述深度卷积的输出值。

于本发明的一实施例中,所述对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值的步骤包括:读取逐点卷积权重值;将所述逐点卷积权重值与所述深度卷积的输出值进行卷积运算后,以获取逐点卷积的结果;对所述逐点卷积的结果进行非线性激活,以生成所述逐点卷积的输出值。

于本发明的一实施例中,所述深度可分离卷积神经网络处理方法还包括:对所述逐点卷积的输出值进行最大值池化,缓存最大值池化后的结果。一种深度可分离卷积神经网络处理系统,其特征在于,包括:深度卷积模块,用于对所述卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;逐点卷积模块,用于对深度可分离深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。

于本发明的一实施例中,所述深度可分离卷积神经网络处理系统还包括:输入缓存模块,与所述深度卷积模块连接,用于缓存所述卷积神经网络的输入特征值;深度卷积权重值缓存模块,与所述深度卷积模块连接,用于缓存与输入特征值一一对应的深度卷积权重值;及逐点卷积权重值缓存模块,与所述逐点卷积模块连接的,用于缓存逐点卷积权重值。

于本发明的一实施例中,所述深度卷积模块包括:深度卷积运算单元,用于从所述特征值缓存单元读取所述卷积神经网络的输入特征值,从所述深度卷积权重值缓存单元读取深度卷积权重值,将所述卷积神经网络的输入特征值和深度卷积权重值进行卷积运算后,以获取深度卷积的结果;第一非线性激活单元,用于对所述深度卷积的结果进行非线性激活,以生成所述深度卷积的输出值。

于本发明的一实施例中,所述逐点卷积模块包括:逐点卷积运算单元,用于读取逐点卷积权重值,将所述逐点卷积权重值与所述深度卷积的输出值进行卷积运算后,以获取逐点卷积的结果;第二非线性激活单元,用于对所述逐点卷积的结果进行非线性激活,以生成所述逐点卷积的输出值。

于本发明的一实施例中,所述深度可分离卷积神经网络的处理系统还包括:池化模块,与所述第二非线性激活单元连接,用于对所述逐点卷积的的输出值进行最大值池化;输出缓存模块,与所述池化模块连接,用于缓存最大值池化后的结果。

本发明最后一方面提供一种介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述深度可分离卷积神经网络处理方法。

如上所述,本发明所述的深度可分离卷积神经网络处理架构/方法/系统、及介质,具有以下有益效果:

第一,针对深度可分离卷积神经网络的并行特点,重点对卷积层中深度卷积和逐点卷积进行了硬件优化设计,在速度、资源消耗及功耗上取得了良好的平衡,计算速度有了很大的提高,减少了系统运行延时。

第二,本发明设计了对每一神经网络层都设计了双缓存结构存储结构,尽量避免权重值和中间计算结果保存到片上缓存单元而不是片外存储单元中,采用多个片上ram构成缓存结构,有效提高了数据带宽和系统运算性能,减少了片外数据交换的资源和能量消耗。

附图说明

图1显示为本发明的深度可分离卷积神经网络的处理架构于一实施例中的原理结构示意图。

图2显示为本发明的深度卷积引擎于一实施例中的电路结构示意图。

图3显示为本发明的逐点卷积引擎于一实施例中的电路结构示意图。

图4显示为本发明的双缓存结构的结构示意图。

图5显示为本发明的深度可分离卷积神经网络的处理方法于一实施例中的流程示意图。

图6显示为本发明的深度可分离卷积神经网络的处理系统于一实施例中的原理结构示意图。

元件标号说明

1深度可分离卷积神经网络的处理架构

11主机接口

12直接内存存取

131特征值片上输入缓存器

132权重值片上缓存器

14深度可分离卷积运算引擎

15输出缓存器组

16控制器

2片外存储器

141线缓存输入可重用结构

142乘加运算结构

1411线缓存单元

1412多路选择器(mux)

1421乘法器组

1422加法器

143乘法器组

144加法器组

145累加器

146fifo

6深度可分离卷积神经网络的处理系统

61输入缓存模块

62深度卷积权重值缓存模块

63逐点卷积权重值缓存模

64深度卷积模块

65逐点卷积模块

66池化模块

67输出缓存模块

641深度卷积运算单元

642第一非线性激活单元

651逐点卷积运算单元

652第二非线性激活单元

s51~s57步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

实施例一

本实施例提供一种深度可分离卷积神经网络处理架构,包括:

片上缓存器,用于缓存通过主机接口和直接存储器访问从所述深度可分离卷积神经网络的处理架构的片外存储器读取到的卷积神经网络的输入特征值、与输入特征值一一对应的深度卷积权重值及逐点卷积权重值;

至少一个深度可分离卷积运算引擎,与所述片上缓存器通信连接,用于对所述深度可分离卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;及用于对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。

以下将结合图示对本实施例所提供的深度可分离卷积神经网络处理架构进行详细描述。请参阅图1,显示为深度可分离卷积神经网络处理架构于一实施例中的原理结构示意图。如图1所示,所述卷积神经网络的处理架构1包括主机接口11、直接内存存取12(directmemoryaccess,dma),片上缓存器(于本实施例中,片上缓存器包括特征值片上输入缓存器131和权重值片上缓存器132)、至少一个深度可分离卷积运算引擎14、输出缓存器组15及控制器16。如图1中所示,褐色箭头表示数据通路,灰色箭头为控制通路。

于本实施例中,所述卷积神经网络的处理架构1与片外存储器2通信连接。片外存储器2一般是动态存储器(dram),但也可以是其他形式的有一定存储容量的存储器。通过dma12可以将存储在片外的一系列的权重值和输入特征值分别发送到片上缓存器13,进一步发送到卷积计算和矩阵计算核心进行卷积和矩阵乘法运算。卷积层和全连接层的中间计算结果保存在片上的中间缓存器上,卷积运算结果保存在输出缓存器组15上。于实际应用中,每个卷积神经网络层的中间计算结果和输出结果保存在片外存储器2上。

在本实施例中,所述主机接口11与如图1所示的片外存储器2连接。所述主机接口可以通过接口协议包括但不限于pcie、axi总线协议与外接独立的中央处理器(cpu)或者微控制器(mcu)来进行交互。于实际应用中,也可以将该卷积神经网络的处理架构和cpu集成在一块儿芯片上构成一个片上系统(soc)。所述主机接口11可以发送控制指令给控制器,控制器16将控制指令转换成控制信号来执行卷积神经网络的卷积运算。于实际应用中,控制信号和电路中的数据流以及控制流相关,比如读取输入数据和权重值数据的开始信息号、结束信号以及权重值的数量等。

此外,所述主机接口11还可以将主机数据发送到片外存储器2中进行存储,比如输入的输入特征值和一系列的权重值,或者和dma12进行互联来控制片外存储器2数据的读取和写入。主机接口11可以接收卷积神经网络的处理架构的运算结果并反馈到主机。于实际应用中,主机接口11也可以接收来自控制器15的一些指令或者控制反馈信号,比如中断信号。

与所述片外存储器2和主机接口11通信连接的直接内存存取(dma)12可与所述主机接口11进行互联以便从所述片外存储器2上读取和写入所述卷积神经网络的输入特征值和对应的权重值。

与所述直接内存存取(dma)12通信连接的片上缓存器,该片上缓存器片上缓存器包括特征值片上输入缓存器131和权重值片上缓存器132。对于特定的硬件电路,上述的输入特征值和权重值可以都从片外的动态随机存储(dram)获得;在一些实现中,输入特征值和权重值可以都从片上的缓存中(sram)中获得;或者输入特征值和权重值分别从片外存储和片上缓存中获得。神经网络层的输出值可以存储在片上缓存中作为下一神经网络层的输入值。当所获得的一系列输入值通过了所有神经网络层的运算生成了最终的推理结果时该系统就完成了处理过程。

其中,所述特征值片上输入缓存器131用于缓存所述卷积神经网络的输入特征值。

所述权重值片上缓存器132用于缓存与输入特征值一一对应的深度卷积权重值及逐点卷积权重值。

与所述卷积运算引擎和输出缓存器组连接的卷积运算结果片上缓存器(未予图示)用于缓存深度卷积的输出值和/或逐点卷积的输出值。

与所述特征值片上输入缓存器131和权重值片上缓存器132通信连接的n个深度可分离卷积运算引擎14用于对所述深度可分离卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;及用于对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。在本实施例中,深度可分离卷积运算引擎14还分别用于对深度卷积的输出值进行非线性激活操作,及对逐点卷积运算的运算结果执行非线性激活操作和最大值池化运算。于本实施例中,非线性激活包括tanh或者relu等。

深度可分离卷积运算引擎主要负责卷积神经网络中卷积层、激活层、池化层和全连接层的计算,是整个加速器系统的核心。根据实际应用和算法需要,可以设置若干个卷积运算引擎,每一个卷积运算引擎负责一层卷积神经网络的计算,以将多个卷积层以流水线的方式同时进行计算,可以有效提高系统的计算速度和效率。

在一些实现中,可以在该卷积神经网络处理器中只设计一个卷积运算引擎,该深度可分离卷积运算引擎可以进行多次复用,每一个神经网络卷积层都复用这一个运算引擎,不同层可以通过不同参数配置来实现。这样的设计可以减少资源消耗,但是计算时间会延长。

在本实施例中,所述深度可分离卷积运算引擎14包括:

与所述特征值片上输入缓存器131和权重值片上缓存器132连接的深度卷积引擎和与所述深度卷积引擎和权重值片上缓存器连接的逐点卷积引擎。

请参阅图2,显示为深度卷积引擎于一实施例中的电路结构示意图。如图2所示,所述深度卷积引擎包括:线缓存输入可重用结构141和乘加运算结构142。

所述线缓存输入可重用结构141包括若干路线缓存单元1411和与每一路线缓存单元1411连接的多路选择器1412,用于缓存所述卷积神经网络的输入特征值。在本实施例中,输入数据流流进由移位寄存器构成的线缓存单元,通过若干个时钟周期,可以形成卷积运算所需要邻近多行数据。同时,为了适应不同大小的输入特征图,该线缓存输入可重用结构141可以灵活配置,通过线缓存尾部的多路选择器1412(mux)来实现。不同层的输入特征图的大小不同,线缓存单元的取值也不同。

所述乘加运算结构142包括乘法器组1421和加法器1422,其中,所述乘法器组将输入的卷积神经网络的输入特征值和深度卷积权重值进行乘法运算;接着通过所述加法器对乘法器组的乘法运算的结果进行加法运算,以输出深度卷积的输出值。于本实施例中,采用3×3卷积采用并行乘法器进行乘法运算。加法器1422通过流水线方式进行加法运算,以便可以在一个时钟周期内完成一次卷积运算。

在本实施例中,深度卷积引擎中乘加运算结构142的数量依据不同的卷积神经网络的网络层而进行不同设置。

具体于实际应用时,深度卷积是对每个输入通道进行空间内的二维卷积,在本实施例中,一个输入通道对应一个滤波器核,尺寸为3×3×n的卷积核k中的第j个滤波器和输入特征图i的第j个通道进行二维卷积,得到输出特征图g的第j个输出通道,输出特征图g的尺寸为3×3×n。

请参阅图3,显示为逐点卷积引擎于一实施例中的电路结构示意图。如图3所示,所述逐点卷积引擎包括:乘法器组143和加法器组144,累加器145及fifo146。

与所述权重值片上缓存器131和乘加运算结构连接乘法器组143用于将深度卷积的输出值与其对应的逐点卷积权重值进行乘法运算。在本实施例中,深度卷积的输出值通过广播操作复制到逐点卷积引擎中。

与所述乘法器组143连接的加法器组144用于将深度卷积的输出值与其对应的逐点卷积权重值的乘法运算结果加上偏置值再截断至预设的位长。

所述累加器145及fifo146用于将所述加法器运算结果进行累计,以先入先出队列输出。之后再进行非线性激活(于本实施例中,非线性激活包括tanh或者relu等),最后经过最大值池化(maxpooling)来进行下采样。

具体于实际应用时,逐点卷积是用卷积核对深度卷积的输出特征图进行通道间的线性组合。此处,1×1卷积核p的尺寸为1×1×n×m,通过调整m的大小,可以调整输出特征图的通道数量。深度可分离卷积将原来在标准卷积层中一步完成的通道内空间卷积和通道间的线性组合分解成两个过程,这样可以有效减少冗余计算和网络模型的参数数量。

请参阅图4,显示为双缓存结构的结构示意图。如图4所示,所述卷积运算引擎14的两侧可采用双缓存结构,即一侧的特征值片上输入缓存器131包括通过交叉开关连接的双输入缓存组,每一输入缓存组由若干独立的ram组成的存储器,其数量和输入通道间的并行度有关。另一侧的输出缓存器组15与对侧的特征值片上输入缓存器131结构相似,即包括通过交叉开关连接的双输出缓存组,每一输出缓存组由若干独立的ram组成的存储器。在本实施例中,通过双缓存结构可以利用乒乓操作来克服在计算器件数据传输的延迟。

在本实施例中,卷积层的前一层的输出缓存同时也是后一层的输入缓存,两组缓存ram会交替用来保存当前层的输出特征图。每组缓存中多个ram同时进行读写,可以提高存储带宽和形成有效的流水线。

分别与所述主机接口11,深度可分离卷积运算引擎14,片上缓存器的控制器16是由优先状态机构构成用于接收通过所述主机接口接收的控制指令,将该控制指令转换成控制信号,以使所述卷积运算引擎执行卷积运算,且若所述处理架构包括若干卷积运算引擎时,用于控制各个卷积运算引擎的运算步调一致,以及和外部cpu之间的通信和交互。

本实施例所提供深度可分离卷积神经网络处理架构具有以下有益效果:

第一,针对深度可分离卷积神经网络的并行特点,重点对卷积层中深度卷积和逐点卷积进行了硬件优化设计,在速度、资源消耗及功耗上取得了良好的平衡,计算速度有了很大的提高,减少了系统运行延时。

第二,本实施例设计了对每一神经网络层都设计了双缓存结构存储结构,尽量使权重值和中间计算结果保存到片上缓存单元而不是片外存储单元中,采用多个片上ram构成缓存结构,有效提高了数据带宽和系统运算性能,减少了片外数据交换的资源和能量消耗。

实施例二

本实施例提供一种深度可分离卷积神经网络处理方法,包括:

对所述深度可分离卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;

对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的的输出值。

以下将结合图示对本实施例所提供的深度可分离卷积神经网络处理方法进行详细描述。请参阅图5,显示为深度可分离卷积神经网络的处理方法于一实施例中的流程示意图。如图5所示,所述卷积神经网络的处理方法具体包括以下几个步骤:

s51,读取所述深度可分离卷积神经网络的输入特征值。例如,深度可分离卷积神经网络的每一输入通道。

s52,读取与输入特征值一一对应的深度卷积权重值。例如,与输入通道对应的滤波器核。尺寸为3×3×n;

s53,将所述卷积神经网络的输入特征值和深度卷积权重值进行卷积运算后,以获取深度卷积的结果。例如,输入特征图的第j个通道和与自身对应的尺寸为3×3×n的卷积核中的第j个滤波器核进行二维卷积。

s54,对所述深度卷积的结果进行非线性激活,以生成所述深度卷积的输出值。例如,得到输出特征图g的第j输出通道,输出特征图g的尺寸为3×3×n。

s55,读取逐点卷积权重值(1×1卷积核p的尺寸为1×1×n×m,通过调整m的大小,可以调整输出特征图的通道数量)。

s56,将所述逐点卷积权重值与所述深度卷积的输出值进行卷积运算后,以获取逐点卷积的结果。例如,深度卷积的输出值为输出特征图g的第j输出通道与卷积核p的尺寸为1×1×n×m进行逐点卷积运算,以获取逐点卷积的结果。

s57,对所述逐点卷积的结果进行非线性激活,以生成所述逐点卷积的输出值。非线性激活包括tanh或者relu等。

本实施例还提供一种介质(亦称为计算机可读存储介质),该计算机程序被处理器执行时实现上述深度可分离卷积神经网络的处理方法。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

实施例三

本实施例提供一种深度可分离卷积神经网络的处理系统,包括:

深度卷积模块,用于对所述深度可分离卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;

逐点卷积模块,用于对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。

以下将结合图示对本实施例所提供的深度可分离卷积神经网络的处理系统进行详细描述。需要说明的是,应理解以下处理系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如:x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现。此外,x模块也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以下x模块的功能。其它模块的实现与之类似。这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以下各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。以下这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),一个或多个微处理器(digitalsingnalprocessor,简称dsp),一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。当以某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。

请参阅图6,显示为深度可分离卷积神经网络的处理系统于一实施例中的原理结构示意图。如图6所示,所述深度可分离卷积神经网络的处理系统6包括输入缓存模块61、深度卷积权重值缓存模块62、逐点卷积权重值缓存模63、深度卷积模块64、逐点卷积模块65、池化模块66及输出缓存模块67。

其中,所述输入缓存模块61用于缓存所述卷积神经网络的输入特征值。

所述深度卷积权重值缓存模块62用于缓存与输入特征值一一对应的深度卷积权重值。

所述逐点卷积权重值缓存模块63用于缓存逐点卷积权重值。

与所述输入缓存模块61和所述深度卷积权重值缓存模块62连接的深度卷积模块64包括:

深度卷积运算单元641用于从所述特征值缓存单元读取所述卷积神经网络的输入特征值,从所述深度卷积权重值缓存单元读取深度卷积权重值,将所述卷积神经网络的特征值和深度卷积权重值进行卷积运算后,以获取深度卷积的结果;

第一非线性激活单元642用于对所述深度卷积的结果进行非线性激活,以生成所述深度卷积的输出值。

与所述逐点卷积权重值缓存模块63和所述第一非线性激活单元642连接的逐点卷积模块65包括:

逐点卷积运算单元651用于读取逐点卷积权重值,将所述逐点卷积权重值与所述深度卷积的输出值进行卷积运算后,以获取逐点卷积的结果;

第二非线性激活单元652用于对所述逐点卷积的结果进行非线性激活,以生成所述逐点卷积的输出值。

与所述第二非线性激活单元652连接的池化模块66用于对所述逐点卷积的的输出值进行最大值池化。

与所述池化模块66连接的输出缓存模块67用于缓存最大值池化后的结果。

本发明所述的深度可分离卷积神经网络处理方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。

本发明还提供一种深度可分离卷积神经网络处理系统,所述深度可分离卷积神经网络处理系统可以实现本发明所述的深度可分离卷积神经网络处理方法,但本发明所述的卷积神经网络的处理方法的实现装置包括但不限于本实施例列举的卷积神经网络的处理系统的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。

综上所述,本发明所述深度可分离卷积神经网络处理架构/方法/系统、及介质,具有以下

有益效果:

第一,针对深度可分离卷积神经网络的并行特点,重点对卷积层中深度卷积和逐点卷积进行了硬件优化设计,在速度、资源消耗及功耗上取得了良好的平衡,计算速度有了很大的提高,减少了系统运行延时。

第二,本发明设计了对每一神经网络层都设计了双缓存结构存储结构,尽量避免权重值和中间计算结果保存到片上缓存单元而不是片外存储单元中,采用多个片上ram构成缓存结构,有效提高了数据带宽和系统运算性能,减少了片外数据交换的资源和能量消耗。本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1