CN111768458A - 一种基于卷积神经网络的稀疏图像处理方法 - Google Patents
一种基于卷积神经网络的稀疏图像处理方法 Download PDFInfo
- Publication number
- CN111768458A CN111768458A CN202010593923.8A CN202010593923A CN111768458A CN 111768458 A CN111768458 A CN 111768458A CN 202010593923 A CN202010593923 A CN 202010593923A CN 111768458 A CN111768458 A CN 111768458A
- Authority
- CN
- China
- Prior art keywords
- data
- calculation
- task
- convolution
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 23
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 238000004364 calculation method Methods 0.000 claims abstract description 75
- 238000010586 diagram Methods 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 27
- 238000009825 accumulation Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 abstract description 7
- 238000013528 artificial neural network Methods 0.000 abstract description 5
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007907 direct compression Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及图像卷积神经网络处理领域,一种基于卷积神经网络的稀疏图像处理方法。包括步骤:步骤一:将特征图以直接索引方法进行压缩;步骤二:将卷积神经网络的权值参数以数据索引方法进行压缩;步骤三:将特征图进行任务划分;步骤四:利用直接内存读取系统将步骤一中特征图有效值搬移到解码模块中的压缩特征图缓存中,并将步骤二中的权值参数搬移到计算单元的权值缓存中。步骤五:设计稀疏特征图数据读取单元;步骤六:系统根据卷积层的规格使能对应位置的数据读取单元,并配置可重构互联模块;步骤七:使能计算。本发明减少卷积神经网络的稀疏图像计算数据存储量,同时降低了计算量。
Description
技术领域
本发明涉及图像卷积神经网络处理领域,具体涉及一种基于卷积神经网络的稀疏图像处理方法。
背景技术
近年来,卷积神经网络(Convolution Neural Networks,CNN)由于数据存储量和计算量大,在嵌入式终端中使用受限,在使用卷积神经网络对稀疏图像计算时,有效降低数据存储量和计算量是关键性技术。由于卷积神经网络的权值参数和输入特征图都具有一定的稀疏性,而稀疏的参数进行乘法计算是无效的。所以通过利用卷积神经网络的稀疏性,可以降低稀疏图像的存储量和计算量。
因此,有必要挖掘卷积神经网络的稀疏性对嵌入式系统进行优化,使得对于稀疏图像的卷积神经网络计算能够更容易的部署到嵌入式设备中。
发明内容
本发明的目的在于降低稀疏图像进行卷积神经网络计算的存储和计算量,提供了一种基于卷积神经网络的稀疏图像处理方法,降低了卷积神经网络的存储量,提高了计算速度。
一种基于卷积神经网络的稀疏图像处理方法,可以减少卷积神经网络的稀疏图像计算数据存储量,同时降低了计算量,包括如下步骤:
步骤一:将要进行卷积计算的输入特征图数据利用直接索引方法进行压缩,首先判断所有输入特征图像素点数据是否为零,用1比特数据表示判断结果,如不为零则1比特数据为1,反之则为1比特数据0,该1比特数据为输入特征图掩码,将为零的输入特征图像素点数据丢弃,将非零的输入特征图像素点数据即输入特征图有效值存入内存中;
步骤二:将达到要求的卷积神经网络模型中的权值参数利用数据索引方法进行压缩,判断权值参数是否为零,如为零则丢弃,反之则将该权值参数存入内存中,并将对应权值参数在卷积核中的位置也存入内存中;
步骤三:对将要进行卷积计算的输入特征图进行任务划分,划分依据为卷积核在输入特征图中从左边界移动到右边界输出一行输出特征图,称计算该行输出特征图为一个任务,输入特征图为N * N大小,输出特征图为H * H的卷积计算,则其划分为H个任务,每个任务利用一个任务码表示,任务码为该任务卷积核滑动计算过程中,所有参与计算的输入特征图的掩码;
步骤四:利用直接内存访问系统将步骤一中压缩后的输入特征图有效值数据搬移到压缩特征图缓存中,将输入特征图掩码搬移到特征值掩码缓存中,设计解码模块,利用特征图掩码将有效的输入特征图写入输入特征图缓存中,将步骤三中的任务码写入任务缓存中;
步骤五:设计特征图数据读取单元电路,根据任务码获得有效输入特征图地址并对有效输入特征图进行读取,存入循环队列寄存器中,这种电路结构使得在一个卷积计算任务中,卷积核移动时,只需读取新的一列有效值数据即可将本次卷积计算所需输入特征图数据输出至计算单元,计算单元由乘累加单元组成,用于完成本次卷积的乘累加计算,计算单元得到数据读取单元的输出的特征图有效值数据和对应的卷积核权值索引,读出对应权值,当权值为零时,则屏蔽乘法器,减少计算量和计算功耗。这种数据读取单元和计算单元结构可以将稀疏特征图有效值筛选出来输出给计算单元进行计算,提高了计算速度,并可以减少乘法次数,降低功耗;
步骤六:使能对应卷积层规格数量的数据读取单元,并配置可重构互联模块对计算单元进行分组,每使能一个数据读取单元为一个计算组,在可重构互联模块中,利用数据选择节点选择数据通路,将该数据读取单元的输出数据分配给固定数量的计算单元,计算单元数量根据卷积层规格决定,完成计算单元的分组,计算单元内的卷积核权值缓存为不同卷积核,利用步骤五中数据读取单元的输出数据进行卷积乘累加计算;
步骤七:使能卷积计算,所有被步骤六中使能的数据读取单元根据任务码对有效的输入特征图进行读取并输出给计算单元进行乘累加计算,每个计算单元组计算完一个任务后就会被分配新的任务,通过现有技术Round-Robin仲裁判断数据读取单元输出的计算完成信号,当检测到对应计算组的数据读取单元计算完成信号,则更新任务码地址来分配新的任务,并输出开始计算脉冲信号使该计算组进行卷积计算,当步骤三中划分的所有任务被计算完成后,系统得到该输入特征图进行卷积计算的结果,并将其存入输出特征图缓存中。本发明方法,加快了稀疏输入特征图的卷积计算过程,并降低了数据存储量和计算量。
利用数据读取单元对任务掩码进行解码方式,只读取出有效特征值输出至计算单元进行乘累加计算,从而减少了由于零值特征值带来的无效乘法计算。
在计算单元中,通过对读出的权值判断,权值为零则屏蔽该次乘法器的乘法计算,减少计算量。
本发明方法基于一台带有存储单元、直接内存读取单元、解码单元、可重构互联模块、运算单元的卷积神经网络专用设备。
存储单元,用于存储压缩的特征图和权值;
直接内存读取单元,用于搬运数据;
解码单元,用于将被压缩的特征值数据还原到片上缓存中,并将任务码写入到任务缓存中;
数据读取单元,读取任务码进行处理,得出稀疏特征图中的有效数据地址,并读出有效数据和对应的权值索引并输出;
可重构互联模块,根据卷积层对特征图的复用情况分配数据读取单元输出的计算数据给不同数量的计算单元;
运算单元,用于完成卷积的乘累加运算,第一步,根据数据读取单元输出权值索引读出权值,如果权值不为零,与有效特征图数据相乘,如果权值为零,则屏蔽本次乘法运算,以减少不必要的功耗损失;第二步,经过累加并与偏置相加得到输出特征图输出。
本发明将稀疏图像的特征图进行任务划分,每个输出行为一个任务。采用特征图直接压缩和权值数据压缩减少数据存储量,采用专用解码模块实现计算量降低。
附图说明
图1为本发明的整体结构框图;
图2为本发明的计算单元示意图;
图3为本发明的可重构互联单元示意图;
图4稀疏特征图任务划分示意图;
图5卷积核移位图;
图6特征图直接压缩示意图;
图7权值数据压缩示意图;
图8解码模块示意图;
图9任务码生成示意图。
具体实施方式
下面通过具体实施例对本发明作进一步的说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均包括在本发明的保护范围之内。
图1为本发明用于卷积神经网络稀疏计算的整体结构框图。包括存储单元、直接内存读取系统、解码模块、输入特征图缓存、任务缓存、数据读取单元、可重构互联模块、运算单元、输出特征图缓存等几个部分,其中运算单元如图2所示,可重构互联模块如图3所示系统工作分为以下几个步骤:
步骤一:将特征图以直接索引方法进行压缩,数据包括特征图有效值和对应位置数据的一位掩码,该掩码表示对应位置的特征值是否有效,1代表有效,0代表无效,压缩方法示意图如图6所示,压缩步骤包括以下a和b,具体的:
a.生成特征图掩码,判断每个特征值是否为零,为零则该位置的掩码为0,不为零则该位置的掩码为1,以32个掩码为一组,存入一个32位的寄存器中,将所有特征图掩码生成,存入指定位置中。
b.判断特征值是否为零,为零则丢弃该特征值,不为零则将其存储至内存中指定位置。
步骤二:将训练好的卷积神经网络权值参数以数据索引方法进行压缩,数据包括权值有效值和对应位置的权值索引,压缩方法示意图如图7所示,压缩步骤包括以下a和b,具体的:
a.确定不同卷积核在加速器中的计算位置,对卷积核进行排列。
b.判断卷积核内权值是否为零,为零则丢弃,不为零则将该权值数据与其对应的排列地址作为权值索引(权值与其索引均为16位),组成一个32位的数据存入内存中指定位置。
步骤三:对将要进行卷积计算的输入特征图进行任务划分,划分依据为卷积核在输入特征图中从左边界移动到右边界输出一行输出特征图,称计算该行输出特征图为一个任务,如图4中输入特征图中黑框所示。假设输入特征图为N*N大小,输出特征图为H*H的卷积计算,则其任务划分为H个。每个任务利用任务码表示,任务码为该任务卷积核滑动计算过程中,如图4中特征图掩码中黑框所示,所有参与计算的输入特征图的掩码,任务码生成示意图如图9所示,当卷积核大小为5x5时,每输出一行结果参与计算的特征图行数为5,将这5行特征图对应的掩码按列存储,每6列存在一个32位寄存器中作为一个任务掩码。
步骤四:利用直接内存访问系统将压缩后的输入特征图有效值数据搬移到压缩特征图缓存中,将输入特征图掩码搬移到特征值掩码缓存中。设计解码模块,利用特征图掩码将有效的输入特征图写入输入特征图缓存中,将任务码按照步骤三中的方法写入任务缓存中。
步骤五:设计特征图数据读取单元,根据任务码获得有效输入特征图地址并对有效输入特征图进行读取,存入循环队列中,这种结构使得在一个卷积计算任务中,卷积核移动时如图5所示,第一次卷积计算需要读取特征图上黑框中的特征值,第二次卷积核向右移动1,其中左边黑框是可以复用的数据,故只需读取右边黑框中有效值数据即可将本次卷积计算所需输入特征图数据输出至计算单元进行乘累加计算,完成本次卷积计算。数据读取单元的输出为特征图有效值数据和对应的卷积核权值索引。
步骤六:使能对应卷积层规格数量的数据读取单元,并配置可重构互联模块对计算单元进行分组,每使能一个数据读取单元为一个计算组,在可重构互联模块中,利用数据选择节点选择数据通路,将该数据读取单元的输出数据分配给固定数量的计算单元,计算单元数量根据卷积层规格决定,完成计算单元的分组。计算单元内的卷积核权值缓存为不同卷积核,可以共享步骤六中数据读取单元的输出数据进行卷积乘累加计算。这种数据共享方法可以降低数据读取量,从而加速计算过程。
步骤七:使能卷积计算,所有被步骤六中使能的数据读取单元根据任务码对有效的输入特征图进行读取并输出给计算单元进行乘累加计算,每个计算单元组计算完一个任务后就会被分配新的任务,通过现有技术Round-Robin仲裁判断数据读取单元输出的计算完成信号,当检测到对应计算组的数据读取单元计算完成信号,则更新任务码地址来分配新的任务,并输出开始计算脉冲信号使该计算组开始卷积计算。当步骤三中划分的所有任务被计算完成后,系统得到该输入特征图进行卷积计算的结果,并将其存入输出特征图缓存中。利用本文所设计的装置和方法,加快了稀疏输入特征图的卷积计算过程,并降低了数据存储量和计算量。
Claims (3)
1.一种基于卷积神经网络的稀疏图像处理方法,其特征在于,包括如下步骤:
步骤一:将要进行卷积计算的输入特征图数据利用直接索引方法进行压缩,首先判断所有输入特征图像素点数据是否为零,用1比特数据表示判断结果,如不为零则1比特数据为1,反之则为1比特数据0,该1比特数据为输入特征图掩码,将为零的输入特征图像素点数据丢弃,将非零的输入特征图像素点数据即输入特征图有效值存入内存中;
步骤二:将达到要求的卷积神经网络模型中的权值参数利用数据索引方法进行压缩,判断权值参数是否为零,如为零则丢弃,反之则将该权值参数存入内存中,并将对应权值参数在卷积核中的位置也存入内存中;
步骤三:对将要进行卷积计算的输入特征图进行任务划分,划分依据为卷积核在输入特征图中从左边界移动到右边界输出一行输出特征图,称计算该行输出特征图为一个任务,输入特征图为N * N大小,输出特征图为H * H的卷积计算,则其划分为H个任务,每个任务利用一个任务码表示,任务码为该任务卷积核滑动计算过程中,所有参与计算的输入特征图的掩码;
步骤四:利用直接内存访问系统将步骤一中压缩后的输入特征图有效值数据搬移到压缩特征图缓存中,将输入特征图掩码搬移到特征值掩码缓存中,设计解码模块,利用特征图掩码将有效的输入特征图写入输入特征图缓存中,将步骤三中的任务码写入任务缓存中;
步骤五:设计特征图数据读取单元电路,根据任务码获得有效输入特征图地址并对有效输入特征图进行读取,存入循环队列寄存器中,这种电路结构使得在一个卷积计算任务中,卷积核移动时,只需读取新的一列有效值数据即可将本次卷积计算所需输入特征图数据输出至计算单元,计算单元由乘累加单元组成,用于完成本次卷积的乘累加计算;计算单元得到数据读取单元的输出的特征图有效值数据和对应的卷积核权值索引,读出对应权值,当权值为零时,则屏蔽乘法器,减少计算量和计算功耗,这种数据读取单元和计算单元结构可以将稀疏特征图有效值筛选出来输出给计算单元进行计算,提高了计算速度,并可以减少乘法次数,降低功耗;
步骤六:使能对应卷积层规格数量的数据读取单元,并配置可重构互联模块对计算单元进行分组,每使能一个数据读取单元为一个计算组,在可重构互联模块中,利用数据选择节点选择数据通路,将该数据读取单元的输出数据分配给固定数量的计算单元,计算单元数量根据卷积层规格决定,完成计算单元的分组,计算单元内的卷积核权值缓存为不同卷积核,利用步骤五中数据读取单元的输出数据进行卷积乘累加计算;
步骤七:使能卷积计算,所有被步骤六中使能的数据读取单元根据任务码对有效的输入特征图进行读取并输出给计算单元进行乘累加计算,每个计算单元组计算完一个任务后就会被分配新的任务,通过现有技术Round-Robin仲裁判断数据读取单元输出的计算完成信号,当检测到对应计算组的数据读取单元计算完成信号,则更新任务码地址来分配新的任务,并输出开始计算脉冲信号使该计算组进行卷积计算,当步骤三中划分的所有任务被计算完成后,系统得到该输入特征图进行卷积计算的结果,并将其存入输出特征图缓存中。
2.根据权利要求1所述的一种基于卷积神经网络的稀疏图像处理方法,其特征在于:利用数据读取单元对任务掩码进行解码方式,只读取出有效特征值输出至计算单元进行乘累加计算,从而减少了由于零值特征值带来的无效乘法计算。
3.根据权利要求1所述的一种基于卷积神经网络的稀疏图像处理方法,其特征在于:在计算单元中,通过对读出的权值判断,权值为零则屏蔽该次乘法器的乘法计算,减少计算量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010593923.8A CN111768458A (zh) | 2020-06-28 | 2020-06-28 | 一种基于卷积神经网络的稀疏图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010593923.8A CN111768458A (zh) | 2020-06-28 | 2020-06-28 | 一种基于卷积神经网络的稀疏图像处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111768458A true CN111768458A (zh) | 2020-10-13 |
Family
ID=72722022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010593923.8A Withdrawn CN111768458A (zh) | 2020-06-28 | 2020-06-28 | 一种基于卷积神经网络的稀疏图像处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111768458A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883982A (zh) * | 2021-01-08 | 2021-06-01 | 西北工业大学 | 一种面向神经网络稀疏特征的数据去零编码及封装方法 |
CN114742211A (zh) * | 2022-06-10 | 2022-07-12 | 南京邮电大学 | 一种面向微控制器的卷积神经网络部署和优化方法 |
CN114792132A (zh) * | 2022-06-22 | 2022-07-26 | 苏州浪潮智能科技有限公司 | 一种脉冲神经网络加速计算系统、方法、设备及介质 |
CN116303108A (zh) * | 2022-09-07 | 2023-06-23 | 芯砺智能科技(上海)有限公司 | 一种适用于并行计算架构的卷积神经网络权重地址排布方法 |
WO2024040421A1 (en) * | 2022-08-23 | 2024-02-29 | Intel Corporation | Fractional-bit quantization and deployment of convolutional neural network models |
-
2020
- 2020-06-28 CN CN202010593923.8A patent/CN111768458A/zh not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883982A (zh) * | 2021-01-08 | 2021-06-01 | 西北工业大学 | 一种面向神经网络稀疏特征的数据去零编码及封装方法 |
CN112883982B (zh) * | 2021-01-08 | 2023-04-18 | 西北工业大学 | 一种面向神经网络稀疏特征的数据去零编码及封装方法 |
CN114742211A (zh) * | 2022-06-10 | 2022-07-12 | 南京邮电大学 | 一种面向微控制器的卷积神经网络部署和优化方法 |
CN114742211B (zh) * | 2022-06-10 | 2022-09-23 | 南京邮电大学 | 一种面向微控制器的卷积神经网络部署和优化方法 |
CN114792132A (zh) * | 2022-06-22 | 2022-07-26 | 苏州浪潮智能科技有限公司 | 一种脉冲神经网络加速计算系统、方法、设备及介质 |
WO2023245965A1 (zh) * | 2022-06-22 | 2023-12-28 | 苏州元脑智能科技有限公司 | 一种脉冲神经网络加速计算系统、方法、设备及非易失性可读存储介质 |
WO2024040421A1 (en) * | 2022-08-23 | 2024-02-29 | Intel Corporation | Fractional-bit quantization and deployment of convolutional neural network models |
CN116303108A (zh) * | 2022-09-07 | 2023-06-23 | 芯砺智能科技(上海)有限公司 | 一种适用于并行计算架构的卷积神经网络权重地址排布方法 |
CN116303108B (zh) * | 2022-09-07 | 2024-05-14 | 芯砺智能科技(上海)有限公司 | 一种适用于并行计算架构的权重地址排布方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111768458A (zh) | 一种基于卷积神经网络的稀疏图像处理方法 | |
CN110458279B (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
US11775430B1 (en) | Memory access for multiple circuit components | |
CN111667051A (zh) | 适用边缘设备的神经网络加速器及神经网络加速计算方法 | |
CN108665063B (zh) | 用于bnn硬件加速器的双向并行处理卷积加速系统 | |
CN111915001B (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
CN110163338B (zh) | 具有运算阵列的芯片运算方法、装置、终端及芯片 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN111931925B (zh) | 基于fpga的二值化神经网络的加速系统 | |
CN111738433A (zh) | 一种可重配置的卷积硬件加速器 | |
CN112950656A (zh) | 一种基于fpga平台的按通道进行预读取数据的分块卷积方法 | |
CN113344179A (zh) | 基于fpga的二值化卷积神经网络算法的ip核 | |
CN113762493A (zh) | 神经网络模型的压缩方法、装置、加速单元和计算系统 | |
CN110738317A (zh) | 基于fpga的可变形卷积网络运算方法、装置和系统 | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
CN110569970B (zh) | 一种应用于卷积神经网络中硬件加速器的数据传输方法 | |
CN115238863A (zh) | 一种卷积神经网络卷积层的硬件加速方法、系统及应用 | |
CN113313244B (zh) | 面向加法网络的近存储神经网络加速器及其加速方法 | |
CN111008691A (zh) | 一种权值和激活值都二值化的卷积神经网络加速器架构 | |
CN114519425A (zh) | 一种规模可扩展的卷积神经网络加速系统 | |
CN114003201A (zh) | 矩阵变换方法、装置及卷积神经网络加速器 | |
CN111047037B (zh) | 数据处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201013 |
|
WW01 | Invention patent application withdrawn after publication |