CN110866595B - 一种集成电路中激活函数运算方法、装置及电路 - Google Patents
一种集成电路中激活函数运算方法、装置及电路 Download PDFInfo
- Publication number
- CN110866595B CN110866595B CN201810985457.0A CN201810985457A CN110866595B CN 110866595 B CN110866595 B CN 110866595B CN 201810985457 A CN201810985457 A CN 201810985457A CN 110866595 B CN110866595 B CN 110866595B
- Authority
- CN
- China
- Prior art keywords
- activation function
- input data
- function
- activation
- input
- 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.)
- Active
Links
- 230000004913 activation Effects 0.000 title claims abstract description 402
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000006870 function Effects 0.000 claims description 437
- 238000013139 quantization Methods 0.000 claims description 23
- 230000011218 segmentation Effects 0.000 claims description 16
- 230000003213 activating effect Effects 0.000 claims description 9
- 238000012887 quadratic function Methods 0.000 claims description 4
- 230000008901 benefit Effects 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 235000004257 Cordia myxa Nutrition 0.000 description 1
- 244000157795 Cordia myxa Species 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Tone Control, Compression And Expansion, Limiting Amplitude (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种集成电路中激活函数运算方法、装置及电路,涉及集成电路领域,通过该方法,在获取激活函数输入数据后,将激活函数输入数据调整至符合激活函数预设输入范围;并根据对激活函数输入数据的调整,对激活函数参数中的激活函数系数进行调整;再根据调整后的激活函数系数,对符合激活函数预设输入范围的激活函数输入数据进行激活函数运算。由于将激活函数输入数据调整到了符合激活函数预设输入范围,并适应性调整了激活函数系数,使得运算结果仍然对应调整前的激活函数输入数据,通过该方法,可以使得激活函数能够进行较大范围的运算,同时其逻辑简单,激活函数运算成本和功耗较低。
Description
技术领域
本发明属于集成电路领域,具体涉及一种集成电路中激活函数运算方法、装置及电路。
背景技术
在VLSI(Very Large Scale Integration,超大规模集成电路)上实现CNN(Convolutional Neural Network,卷积神经网络),必然要实现激活函数层。然而受到ASIC设计规则的相关约束,算法模型必须利用RTL(Register Transfer Level,寄存器传输级(数字电路抽象描述))实现,其中会遇到输出数据饱和,运算定点化,支持的运算模式单一,以及动态范围不足等问题。
激活函数层必须要解决运算定点化问题,并且有尽可能好的动态范围,适应不同种类的激活函数。
通常情况下,目前使用浮点运算单元进行激活函数运算,精度高,动态范围大。但是,使用浮点运算单元进行激活函数运算,逻辑多且时序差,占用很大的ASIC面积,成本和功耗很高。
为降低成本和功耗,以及减少占用的ASIC(Application Specific IntegratedCircuit,专用集成电路)面积,也可以使用专门的电路实现特定的激活函数,精度高,逻辑少,时序好,占用ASIC面积少,成本和功耗低。但是其动态范围小,可以进行的激活函数运算必须是限定的几种,应用受到制约。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种集成电路中激活函数运算方法、装置及电路,以实现以较低的成本和功耗进行较多种类激活函数的运算。
依据本发明的第一方面,提供了一种集成电路中激活函数运算方法,包括:
获取激活函数输入数据,并将所述激活函数输入数据调整至符合激活函数预设输入范围;
根据对所述激活函数输入数据的调整,对输入的激活函数参数中的激活函数系数进行调整;
根据调整后的激活函数系数,对符合所述激活函数预设输入范围的激活函数输入数据进行激活函数运算。
进一步,所述获取激活函数输入数据,并将所述激活函数输入数据调整至符合激活函数预设输入范围,具体包括:
获取激活函数输入数据,并确定所述激活函数输入数据的统计结果;
根据所述激活函数输入数据的统计结果,将所述激活函数输入数据调整至符合激活函数预设输入范围。
更进一步,所述激活函数输入数据的统计结果,具体包括:
激活函数输入数据的直方图分布规律;和/或
激活函数输入数据的极值。
更进一步,所述根据所述激活函数输入数据的统计结果,将所述激活函数输入数据调整至符合激活函数预设输入范围,具体包括:
根据所述激活函数输入数据的统计结果,通过偏置调整和/或系数调整,将所述激活函数输入数据调整至符合激活函数预设输入范围。
进一步,所述根据对所述激活函数输入数据的调整,对输入的激活函数参数中的激活函数系数进行调整,具体包括:
根据对所述激活函数输入数据的调整,确定针对输入的激活函数参数中的激活函数系数的调整系数;
根据所述激活函数系数的调整系数,对所述激活函数系数进行调整。
进一步,所述激活函数为N段分段函数,N为整数且N≥1;
所述根据调整后的激活函数系数,对符合所述激活函数预设输入范围的激活函数输入数据进行激活函数运算,具体包括:
根据所述激活函数参数中的激活函数分段信息以及调整后的激活函数系数,选通各分段范围内的激活函数输入数据进行对应分段的激活函数运算。
进一步,所述激活函数运算具体包括:
线性运算;或者
三次条样曲线运算;或者
二次函数运算。
第二方面,本发明实施例还提供一种集成电路中激活函数运算装置,包括:
第一调整单元,用于获取激活函数输入数据,并将所述激活函数输入数据调整至符合激活函数预设输入范围;
第二调整单元,用于根据对所述激活函数输入数据的调整,对输入的激活函数参数中的激活函数系数进行调整;
运算单元,用于根据调整后的激活函数系数,对符合所述激活函数预设输入范围的激活函数输入数据进行激活函数运算。
第三方面,本发明实施例还提供一种集成电路中激活函数运算电路,包括:
激活函数数据加载器,用于获取激活函数输入数据;
激活函数前量化单元,连接所述激活函数数据加载器,用于将所述激活函数输入数据调整至符合激活函数预设输入范围,并根据对所述激活函数输入数据的调整,确定激活函数系数的调整系数;
激活函数运算单元,连接所述激活函数前量化单元,用于根据所述激活函数系数的调整系数,调整所输入的激活函数参数中的激活函数系数,并对符合所述激活函数预设输入范围的激活函数输入数据进行激活函数运算。
进一步,还包括:
统计单元,连接所述激活函数数据加载器和所述激活函数前量化单元,用于确定所述激活函数输入数据的统计结果;
所述激活函数前量化单元根据所述激活函数输入数据的统计结果,将所述激活函数输入数据调整至符合激活函数预设输入范围。
更进一步,所述统计单元具体包括:
直方图统计模块和/或极限值统计模块。
进一步,还包括:
激活函数参数加载器,连接所述激活函数运算单元,用于加载激活函数参数并输出至所述激活函数运算单元。
进一步,所述激活函数运算单元,具体包括:
激活函数分段选通器,用于根据所述激活函数参数对所述激活函数输入数据进行分段选通;
激活函数运算子单元,用于基于所述激活函数分段选通器的输入,根据所述激活函数系数的调整系数,调整激活函数参数中的激活函数系数,并对符合所述激活函数预设输入范围的激活函数输入数据分段进行激活函数运算。
进一步,还包括:
激活函数后量化单元,连接所述激活函数运算单元,用于对激活函数运算结果进行量化;
激活函数运算结果输出单元,连接所述激活函数后量化单元,用于将量化后的激活函数运算结果输出至存储器。
本发明实施例提供一种集成电路中激活函数运算方法、装置及电路,在获取激活函数输入数据后,将激活函数输入数据调整至符合激活函数预设输入范围;并根据对激活函数输入数据的调整,对激活函数参数中的激活函数系数进行调整;再根据调整后的激活函数系数,对符合激活函数预设输入范围的激活函数输入数据进行激活函数运算。由于将激活函数输入数据调整到了符合激活函数预设输入范围,并适应性调整了激活函数系数,使得运算结果仍然对应调整前的激活函数输入数据,通过该方法,可以使得激活函数能够进行较大范围的运算,同时其逻辑简单,激活函数运算成本和功耗较低。
应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举说明本发明的具体实施方式。
附图说明
通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的有点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
图1为本发明实施例提供的集成电路中激活函数运算方法流程图;
图2为本发明实施例提供的集成电路中激活函数运算装置结构示意图;
图3-图7为本发明实施例提供的集成电路中激活函数运算电路结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
在图1中,示出了本发明实施例提供的集成电路中激活函数运算方法,该方法包括:
步骤S101、获取激活函数输入数据,并将激活函数输入数据调整至符合激活函数预设输入范围;
步骤S102、根据对激活函数输入数据的调整,对输入的激活函数参数中的激活函数系数进行调整;
步骤S103、根据调整后的激活函数系数,对符合激活函数预设输入范围的激活函数输入数据进行激活函数运算。
由于在步骤S101中,将激活函数输入数据调整到了符合激活函数预设输入范围,并在步骤S102中适应性调整了激活函数系数,使得运算结果仍然对应调整前的激活函数输入数据,通过该方法,可以使得激活函数能够进行较大范围的运算,同时其逻辑简单,激活函数运算成本和功耗较低。
在调整激活函数输入数据时,可以根据激活函数的统计结果来调整,从而使得对激活函数输入数据的调整,符合当前输入数据的特点,提高计算精度。例如,根据激活函数输入数据的分布情况确定调整偏置量、根据激活函数输入数据的极值确定调整系数等。
具体的,步骤S101中,获取激活函数输入数据,并将激活函数输入数据调整至符合激活函数预设输入范围,具体包括:
获取激活函数输入数据,并确定激活函数输入数据的统计结果;
根据激活函数输入数据的统计结果,将激活函数输入数据调整至符合激活函数预设输入范围。
其中,激活函数输入数据的统计结果,具体包括:
激活函数输入数据的直方图分布规律;和/或
激活函数输入数据的极值。
在具体实现过程中,可以通过软件或硬件的方式得到激活函数输入数据的直方图分布规律以及激活函数输入数据的极值,在采用硬件方式实现时,可以通过移位寄存器、计数器和比较器等器件确定出激活函数输入数据的直方图分布规律以及激活函数输入数据的极值,例如,通过比较器和计数器,即可确定激活函数输入数据的直方图分布规律,通过移位寄存器即可寄存前一周期中输入的数据,再通过比较器与当前输入的数据进行比较,获得较大的数据,继续与下一周期中输入的数据进行比较,直至到达统计区间,即可确定出该统计区间中激活函数输入数据的极大值,同理,若每次比较后寄存较小的数据,即可确定出激活函数输入数据的极小值。当然,本领域技术人员也可以根据实际需要,采用其它器件和方法确定激活函数输入数据的统计结果,在此不再一一赘述。
通常情况下,根据激活函数输入数据的统计结果,将激活函数输入数据调整至符合激活函数预设输入范围,具体包括:
根据激活函数输入数据的统计结果,通过偏置调整和/或系数调整,将激活函数输入数据调整至符合激活函数预设输入范围。
确定了激活函数输入数据的直方图分布规律后,可以在调整激活函数输入数据的偏置量时,以数据分布最密集的部分为中心进行调整,从而获得更高的激活函数运算精度。
确定了激活函数输入数据的极大值和极小值后,可以根据激活函数输入数据的极大值和极小值进行激活函数输入数据系数的调整,从而使得激活函数输入数据满足预先设定的激活函数输入范围。
通常情况下,激活函数输入数据满布预先设定的激活函数输入范围较佳,可以获得较好的计算精度,例如,若激活函数输入范围为(0,65535),若激活函数输入数据存在超出该范围的数据,则需要通过系数调整,使得激活函数输入数据全部落入该范围内,若激活函数输入数据的输入范围在(0,65535)中,并且其范围远小于(0,65535),例如,其范围可能是(10-100),此时,也调整其范围,是得调整后的激活函数输入数据范围在(0,65535)中,并接近(0,65535)较佳。
为适应更多的激活函数运算情况,使得运算电路的应用范围更加广阔,激活函数系数可能需要在运算时针对具体运算进行加载,此时,可以先根据对激活函数输入数据的调整,确定针对激活函数参数中的激活函数系数的调整系数,在加载了激活函数系数后,再根据激活函数系数的调整系数,对激活函数系数进行调整。
此时,步骤S102中,根据对激活函数输入数据的调整,对输入的激活函数参数中的激活函数系数进行调整,具体包括:
根据对激活函数输入数据的调整,确定针对所输入的激活函数参数中的激活函数系数的调整系数;
根据激活函数系数的调整系数,对激活函数系数进行调整。
为适应多种激活函数运算,激活函数可以是N段分段函数,N为整数且N≥1;
此时,步骤S103中,根据调整后的激活函数系数,对符合激活函数预设输入范围的激活函数输入数据进行激活函数运算,具体包括:
根据激活函数参数中的激活函数分段信息以及调整后的激活函数系数,选通各分段范围内的激活函数输入数据进行对应分段的激活函数运算。
在本发明实施例中,激活函数运算可以是线性运算,或者三次条样曲线运算,或者二次函数运算。
三者之中,线性运算占用的乘法器和面积最小,其成本和功耗也较低,其精度也较低,三次条样曲线运算占用的乘法器和面积较大,计算精度最高,二次函数运算占用的乘法器和面积较大,其计算精度稍优于线性运算。
例如,激活函数的形式为y=Ax+B,激活函数参数中,包括该激活函数的分段信息以及每段的系数A、B,例如分段信息可以为(1,1000),[1000,20000],(20000,65535)三段,每段的激活函数系数分别为A1和B1、A2和B2、A3和B3,若x为{1,2,3……m},则需要将x的范围调整至满布(0,65535),再根据具体的每个x值,通过选通器使其选通相应的分段函数,对应相应的激活函数系数进行激活函数运算,例如,调整后的x为10,则选通对应(1,1000)的分段函数,通过y=A1x+B1进行激活函数运算,若调整后的x为30000,则选通对应(20000,65535)的分段函数,通过y=A3x+B3进行激活函数运算,由于在激活函数运算时,激活函数系数会根据激活函数系数的调整系数进行调整,所以激活函数运算的结果是完全对应调整前的x的,即对应{1,2,3……m}。
本发明实施例还相应提供一种集成电路中激活函数运算装置,如图2所示,包括:
第一调整单元201,用于获取激活函数输入数据,并将激活函数输入数据调整至符合激活函数预设输入范围;
第二调整单元202,用于根据对激活函数输入数据的调整,对输入的激活函数参数中的激活函数系数进行调整;
运算单元203,用于根据调整后的激活函数系数,对符合激活函数预设输入范围的激活函数输入数据进行激活函数运算。
由于第一调整单元201将激活函数输入数据调整到了符合激活函数预设输入范围,第二调整单元202适应性调整了激活函数系数,使得运算单元203的运算结果仍然对应调整前的激活函数输入数据,通过该装置,可以使得激活函数能够进行较大范围的运算,同时其逻辑简单,激活函数运算成本和功耗较低。
本发明实施例还相应提供一种集成电路中激活函数运算电路,如图3所示,包括:
激活函数数据加载器301,用于获取激活函数输入数据;
激活函数前量化单元302,连接激活函数数据加载器301,用于将激活函数输入数据调整至符合激活函数预设输入范围,并根据对激活函数输入数据的调整,确定激活函数系数的调整系数;
激活函数运算单元303,连接激活函数前量化单元302,用于根据激活函数系数的调整系数,调整所输入的激活函数参数中的激活函数系数,并对符合激活函数预设输入范围的激活函数输入数据进行激活函数运算。
由于激活函数前量化单元302将激活函数输入数据调整到了符合激活函数预设输入范围,激活函数运算单元303又适应性调整了激活函数系数,使得激活函数运算的运算结果仍然对应调整前的激活函数输入数据,通过该电路,可以使得激活函数能够进行较大范围的运算,同时其逻辑简单,激活函数运算成本和功耗较低。
其中,激活函数数据加载器301将数据从内存或者外部存储器搬运到该激活运算电路的DMA(Direct Memory Access,直接内存存取)操作的模块,可以将数据不经过CPU干预的情况下加载至该模块以便于下一步处理。
进一步,如图4所示,该电路中还包括:
统计单元304,连接激活函数数据加载器301和激活函数前量化单元302,用于确定激活函数输入数据的统计结果;
激活函数前量化单元302根据激活函数输入数据的统计结果,将激活函数输入数据调整至符合激活函数预设输入范围。
更进一步,如图4所示,统计单元304具体包括:
直方图统计模块3041和/或极限值统计模块3042。
当统计单元304中包括直方图统计模块3041和极限值统计模块3042时,可以通过DEMUX(Demultiplexer,多路分配器)将数据分别输入至直方图统计模块3041和极限值统计模块3042,再通过MUX(Multiplexer,多路复用器)将直方图统计模块3041和极限值统计模块3042的输出结果汇总输出至激活函数前量化单元302。
进一步,为适应更多样更复杂的激活函数,如图5所示,该电路还包括:
激活函数参数加载器305,连接激活函数运算单元303,用于加载激活函数参数并输出至激活函数运算单元303。
进一步,如图6所示,激活函数运算单元303具体包括:
激活函数分段选通器3031,用于根据激活函数参数对激活函数输入数据进行分段选通;
激活函数运算子单元3032,用于基于激活函数分段选通器3031的输入,根据激活函数系数的调整系数,调整激活函数参数中的激活函数系数,并对符合激活函数预设输入范围的激活函数输入数据分段进行激活函数运算。
此时,激活函数参数包括激活函数的分段信息和激活函数系数。激活函数参数加载器305从RAM加载激活函数的分段信息到激活函数分段选通器3031,并从RAM加载激活函数系数到激活函数运算子单元3032,实现这两种DMA操作。
激活函数运算子单元3032根据激活函数分段结果得到的参数,与激活函数前量化单元配置的系数和偏置,对输入数据与激活函数系数进行计算。由于是对激活函数进行分段线性拟合,因此理论上可以支持任意激活函数,例如ReLU,LeakyReLU,Sigmoid,Tanh,Selu,包括但不限于分段激活函数。
进一步,如图7所示,该电路还包括:
激活函数后量化单元306,连接激活函数运算303单元,用于对激活函数运算结果进行量化;
激活函数运算结果输出单元307,连接激活函数后量化306单元,用于将量化后的激活函数运算结果输出至存储器。
其中,激活函数后量化单元306对激活函数运算结果进行量化,可以使激活函数运算结果变为指定位宽(例如4bit,8bit,16bit,32bit),避免数据超出动态范围。
激活函数运算结果输出单元307将激活函数后量化单元306得到的结果通过DMA操作写回RAM,在不经过CPU干预的情况下完成计算过程。
通过该激活函数运算电路,在可接受的功耗、ASIC面积与成本下,实现了动态范围足够并且支持任意激活函数计算的电路。同时,RTL设计友好,由于使用多分段线性拟合,可以映射到RTL的多路复用器,复用线性计算单元,从而极大降低RTL实现难度,并且减少资源占用,降低功耗。
附图中的流程图和框图,图示了按照本公开各种实施例的方法、装置和运算机可读存储介质的可能实现的体系架构、功能和操作。应当注意,流程图中的每个方框所表示的步骤未必按照标号所示的顺序进行,有时可以基本并行地执行,有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的硬件来实现,或者可以用硬件与运算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
通过以上对实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该运算机软件产品可以存储在运算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台运算机设备(可以是个人运算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种集成电路中激活函数运算方法,其特征在于,包括:
获取激活函数输入数据,并确定所述激活函数输入数据的统计结果;所述统计结果包括:激活函数输入数据的直方图分布规律,和/或,激活函数输入数据的极值;
根据所述激活函数输入数据的统计结果,将所述激活函数输入数据调整至符合激活函数预设输入范围;
根据对所述激活函数输入数据的调整,对输入的激活函数参数中的激活函数系数进行调整;
根据调整后的激活函数系数,对符合所述激活函数预设输入范围的激活函数输入数据进行激活函数的运算。
2.如权利要求1所述的方法,其特征在于,所述根据所述激活函数输入数据的统计结果,将所述激活函数输入数据调整至符合激活函数预设输入范围,包括:
根据所述激活函数输入数据的统计结果,通过偏置调整和/或系数调整,将所述激活函数输入数据调整至符合激活函数预设输入范围。
3.如权利要求1所述的方法,其特征在于,所述根据对所述激活函数输入数据的调整,对输入的激活函数参数中的激活函数系数进行调整,包括:
根据对所述激活函数输入数据的调整,确定针对输入的激活函数参数中的激活函数系数的调整系数;
根据所述激活函数系数的调整系数,对所述激活函数系数进行调整。
4.如权利要求1所述的方法,其特征在于,所述激活函数为N段分段函数,N为整数且N≥1;
所述根据调整后的激活函数系数,对符合所述激活函数预设输入范围的激活函数输入数据进行激活函数的运算,包括:
根据所述激活函数参数中的激活函数分段信息以及调整后的激活函数系数,选通各分段范围内的激活函数输入数据进行对应分段的激活函数运算。
5.如权利要求1所述的方法,其特征在于,所述激活函数运算包括:
线性运算;或者
三次条样曲线运算;或者
二次函数运算。
6.一种集成电路中激活函数运算装置,其特征在于,包括:
第一调整单元,用于获取激活函数输入数据,并确定所述激活函数输入数据的统计结果;所述统计结果包括:激活函数输入数据的直方图分布规律,和/或,激活函数输入数据的极值;根据所述激活函数输入数据的统计结果,将所述激活函数输入数据调整至符合激活函数预设输入范围;
第二调整单元,用于根据对所述激活函数输入数据的调整,对输入的激活函数参数中的激活函数系数进行调整;
运算单元,用于根据调整后的激活函数系数,对符合所述激活函数预设输入范围的激活函数输入数据进行激活函数的运算。
7.一种集成电路中激活函数运算电路,其特征在于,包括:
激活函数数据加载器,用于获取激活函数输入数据;
激活函数前量化单元,连接所述激活函数数据加载器,用于将所述激活函数输入数据调整至符合激活函数预设输入范围,并根据对所述激活函数输入数据的调整,确定激活函数系数的调整系数;
激活函数运算单元,连接所述激活函数前量化单元,用于根据所述激活函数系数的调整系数,调整所输入的激活函数参数中的激活函数系数,并对符合所述激活函数预设输入范围的激活函数输入数据进行激活函数的运算;
统计单元,连接所述激活函数数据加载器和所述激活函数前量化单元,用于确定所述激活函数输入数据的统计结果;
所述激活函数前量化单元根据所述激活函数输入数据的统计结果,将所述激活函数输入数据调整至符合激活函数预设输入范围;
所述统计单元包括:
直方图统计模块和/或极限值统计模块。
8.如权利要求7所述的电路,其特征在于,还包括:
激活函数参数加载器,连接所述激活函数运算单元,用于加载激活函数参数并输出至所述激活函数运算单元。
9.如权利要求7所述的电路,其特征在于,所述激活函数运算单元,包括:
激活函数分段选通器,用于根据所述激活函数参数对所述激活函数输入数据进行分段选通;
激活函数运算子单元,用于基于所述激活函数分段选通器的输入,根据所述激活函数系数的调整系数,调整激活函数参数中的激活函数系数,并对符合所述激活函数预设输入范围的激活函数输入数据分段进行激活函数的运算。
10.如权利要求7所述的电路,其特征在于,还包括:
激活函数后量化单元,连接所述激活函数运算单元,用于对激活函数运算结果进行量化;
激活函数运算结果输出单元,连接所述激活函数后量化单元,用于将量化后的激活函数运算结果输出至存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810985457.0A CN110866595B (zh) | 2018-08-28 | 2018-08-28 | 一种集成电路中激活函数运算方法、装置及电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810985457.0A CN110866595B (zh) | 2018-08-28 | 2018-08-28 | 一种集成电路中激活函数运算方法、装置及电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110866595A CN110866595A (zh) | 2020-03-06 |
CN110866595B true CN110866595B (zh) | 2024-04-26 |
Family
ID=69651760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810985457.0A Active CN110866595B (zh) | 2018-08-28 | 2018-08-28 | 一种集成电路中激活函数运算方法、装置及电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866595B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507465B (zh) * | 2020-06-16 | 2020-10-23 | 电子科技大学 | 一种可配置的卷积神经网络处理器电路 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775599A (zh) * | 2017-01-09 | 2017-05-31 | 南京工业大学 | 递归神经网络的多计算单元粗粒度可重构系统及方法 |
WO2017108399A1 (fr) * | 2015-12-21 | 2017-06-29 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Circuit neuronal optimise, architecture et procede pour l'execution des reseaux de neurones |
CN107491809A (zh) * | 2017-08-21 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种fpga实现残差网络中激活函数的方法 |
CN107729984A (zh) * | 2017-10-27 | 2018-02-23 | 中国科学院计算技术研究所 | 一种适用于神经网络激活函数的计算装置及方法 |
CN107832846A (zh) * | 2017-11-30 | 2018-03-23 | 电子科技大学 | 一种整合多种激活函数的神经元电路 |
CN107861916A (zh) * | 2017-11-10 | 2018-03-30 | 中国科学院计算技术研究所 | 一种用于针对神经网络执行非线性运算的方法和装置 |
CN108154224A (zh) * | 2018-01-17 | 2018-06-12 | 北京中星微电子有限公司 | 用于数据处理的方法、装置和非暂时性计算机可读介质 |
CN108345934A (zh) * | 2018-01-16 | 2018-07-31 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
-
2018
- 2018-08-28 CN CN201810985457.0A patent/CN110866595B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017108399A1 (fr) * | 2015-12-21 | 2017-06-29 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Circuit neuronal optimise, architecture et procede pour l'execution des reseaux de neurones |
CN106775599A (zh) * | 2017-01-09 | 2017-05-31 | 南京工业大学 | 递归神经网络的多计算单元粗粒度可重构系统及方法 |
CN107491809A (zh) * | 2017-08-21 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种fpga实现残差网络中激活函数的方法 |
CN107729984A (zh) * | 2017-10-27 | 2018-02-23 | 中国科学院计算技术研究所 | 一种适用于神经网络激活函数的计算装置及方法 |
CN107861916A (zh) * | 2017-11-10 | 2018-03-30 | 中国科学院计算技术研究所 | 一种用于针对神经网络执行非线性运算的方法和装置 |
CN107832846A (zh) * | 2017-11-30 | 2018-03-23 | 电子科技大学 | 一种整合多种激活函数的神经元电路 |
CN108345934A (zh) * | 2018-01-16 | 2018-07-31 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
CN108154224A (zh) * | 2018-01-17 | 2018-06-12 | 北京中星微电子有限公司 | 用于数据处理的方法、装置和非暂时性计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110866595A (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210263995A1 (en) | Reduced dot product computation circuit | |
CN110147251B (zh) | 用于计算神经网络模型的系统、芯片及计算方法 | |
US20200218509A1 (en) | Multiplication Circuit, System on Chip, and Electronic Device | |
CN111144457B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN111507465B (zh) | 一种可配置的卷积神经网络处理器电路 | |
CN110866595B (zh) | 一种集成电路中激活函数运算方法、装置及电路 | |
JP4101034B2 (ja) | 符号化装置及び方法 | |
JP2021108230A (ja) | ニューラルネットワーク処理装置およびニューラルネットワーク処理方法 | |
US11960986B2 (en) | Neural network accelerator and operating method thereof | |
US20220377352A1 (en) | Lossless Compression Techniques | |
CN112085175B (zh) | 基于神经网络计算的数据处理方法和装置 | |
US20210336632A1 (en) | Lossy Compression Techniques | |
CN107220025B (zh) | 处理乘加运算的装置和处理乘加运算的方法 | |
US20110013831A1 (en) | Image coding apparatus, image coding method and computer readable medium storing program | |
CN112686365B (zh) | 运行神经网络模型的方法、装置和计算机设备 | |
JP6885645B2 (ja) | ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム | |
EP0677968A2 (en) | Quantization estimating method and circuit for data compressing | |
CN111523653A (zh) | 运算装置及方法 | |
US20170192491A1 (en) | Method for achieving low power consumption of three-dimensional measurement chip | |
US11586910B1 (en) | Write cache for neural network inference circuit | |
CN111384974B (zh) | 多进制ldpc码的置信度量化方法、装置及解码器 | |
JP2021076900A (ja) | データ処理装置及びその動作方法、プログラム | |
CN112308199B (zh) | 数据块的处理方法、装置及存储介质 | |
Pirkl et al. | Self-adaptive FPGA-based image processing filters using approximate arithmetics | |
JP7206531B2 (ja) | メモリデバイスおよびその動作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201202 Address after: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094 Applicant after: Canaan Bright Sight Co.,Ltd. Address before: 100094, No. 3, building 23, building 8, northeast Wang Xi Road, Beijing, Haidian District, 307 Applicant before: Canaan Creative Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |