CN109754071B - 激活运算方法、装置、电子设备和可读存储介质 - Google Patents
激活运算方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN109754071B CN109754071B CN201811645222.3A CN201811645222A CN109754071B CN 109754071 B CN109754071 B CN 109754071B CN 201811645222 A CN201811645222 A CN 201811645222A CN 109754071 B CN109754071 B CN 109754071B
- Authority
- CN
- China
- Prior art keywords
- value
- upper limit
- relu activation
- limit parameter
- relu
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种激活运算方法、装置、电子设备和可读存储介质。所述激活运算方法可以在对relu激活层的运算过程中实现relun激活函数,因此可以提高目标神经网络在训练过程中的收敛性以及在推理过程中的精度。
Description
技术领域
本申请涉及神经网络技术领域,特别是涉及一种激活运算方法、装置、电子设备和可读存储介质。
背景技术
目前,基于神经网络的机器学习算法发展地如火如荼;示例性地,SSD网络(单次探测器,Single Shot MultiBox Detector)是非常有效的一种单阶段检测网络,具有较高的meanAP(一种精确度指标)和吞吐量(57fps/74.3meanAP/VOC2007),由于其既快又准,在视频和图像检测领域获得了大规模的应用。
SSD网络通常包括前端的分类网络和后端检测网络,前端网络可以为VGG16,mobilenetV1,mobilenetV2等。目前,通过前端网络的改进以提高SSD网络的检测速度或meanAP是当前的一个研究方向。当上述前端网络在caffe(一种编程框架)上运行时,由于caffe缺少Relun的激活函数类型,从而导致mobilenetV2-SSD网络精度较差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现relun激活函数的激活运算方法、装置、电子设备和可读存储介质。
第一方面,本申请提供了一种激活运算方法,所述方法包括:
获取relu激活层中的上限参数的值以及所述relu激活层的输入数据;
根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值;
当所述上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
在其中一个实施例中,所述根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据的步骤,包括:
比较所述中间输出值与所述上限参数的值,将所述中间输出值与所述上限参数的值中的最小值作为所述relu激活层的输出数据。
在其中一个实施例中,所述方法还包括:
当所述上限参数的值等于第一数值时,将所述中间输出值作为所述relu激活层的输出数据。
在其中一个实施例中,所述上限参数的值为6。
在其中一个实施例中,所述relu激活层关联relu激活函数文件;所述relu激活函数文件中配置有第一逻辑,所述第一逻辑的输入为所述中间输出值和所述上限参数的值,所述第一逻辑的输出为所述中间输出值和所述上限参数的值之间的最小值。
在其中一个实施例中,所述上限参数被配置于caffe的数据结构文件中的relu参数中。
在其中一个实施例中,所述方法还包括:
接收上限参数配置指令,根据所述上限参数配置指令设置所述上限参数的值。
第二方面,本申请还提供了一种激活运算装置,所述装置包括:
数据获取模块,用于获取relu激活层中的上限参数的值以及所述relu激活层的输入数据;
中间输出模块,用于根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值;
目标输出模块,用于当所述上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
第三方面,本申请还提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取relu激活层中的上限参数的值以及所述relu激活层的输入数据;
根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值;
当所述上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
第四方面,本申请还提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取relu激活层中的上限参数的值以及所述relu激活层的输入数据;
根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值;
当所述上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
上述激活运算方法、装置、电子设备和可读存储介质,电子设备可以获取relun激活函数相对于relu激活函数的上限参数值,并根据该上限参数的值和relu激活函数的输出数据计算得到relu激活层的输出数据,从而通过设置上限参数,在原有relu函数的基础上实现了relun激活函数的功能,进而可以提高目标神经网络在训练过程中的收敛性以及在推理过程中的精度。同时,通过设置上限参数,在计算的过程中可以过滤掉大于该上限参数的数据,从而可以提高目标神经网络的运行效率及速度。
附图说明
图1为一个实施例中激活运算方法的应用环境图;
图2为一个实施例中激活运算方法的流程示意图;
图3为一个实施例中激活运算装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1所示,本申请提供的激活运算方法,可以应用于主板、计算机设备等电子设备中,该电子设备可以包括处理器11和存储器12,存储器可以存储有caffe软件程序,处理器可以为中央处理器等通用处理器,也可以为通用处理器和人工智能处理器形成的异构处理器组合。可选地,该电子设备能够实现神经网络相关的运算。其中,神经网络可以用于对输入的图像数据、文本数据、语音数据等进行处理,实现模式识别、自动控制、预测估计等多种功能。各种类型的神经网络基本是由各种类型的网络层组合构建的,包括但不限于卷积层、池化层、全连接层、激活层等网络层;相比于其它类型的网络层而言,激活层可以通过激活函数向神经网络中引入非线性特征使得神经网络可以任意逼近任何非线性函数,因此对神经网络性能的提升具有重要作用。
其中,relu系列激活函数作为极为常用的激活函数类型,在很多应用场景下,relu6等relun函数相比relu激活函数而言,可以更容易使得神经网络在训练时收敛以及可以提高神经网络精度,然而在caffe(一种广泛使用的机器学习领域的编程框架)中却仅支持relu激活函数,而relu6等relun激活函数却并不支持,这给基于caffe构建神经网络模型的数据处理工作带来诸多困难。
在一个实施例中,如图2所示,提供了一种激活运算方法,通过对原生caffe的relu函数文件进行改进,能够在原生caffe的relu函数的基础上实现relun函数的功能,从而能够提高基于caffe的神经网络的运行效率及精度。具体地,以该方法应用于图1所示的电子设备为例进行说明,上述方法可以包括以下步骤:
S201,获取relu激活层中的上限参数的值以及所述relu激活层的输入数据。
具体地,电子设备可以获取并解析caffe中目标神经网络的配置文件,得到relu激活层中的上限参数的值,也可以获取用户输入的上限参数的值,总之,可以根据不同应用场景选取适合的上限参数的值。上述配置文件可以包括目标神经网络的网络结构和组成神经网络的各层的参数的赋值,例如该目标神经网络的第3网络层和第6网络层均为relu激活层,则配置文件可以存储有第3网络层和第6网络层的上限参数的值,不同relu激活层中上限参数的值可以不同;在进行神经网络运算过程中,caffe主程序可以调用上述配置文件,获取relu激活层的中的上限参数的值来进行运算;示例性地,配置文件存储有relu激活层的上限参数的值为n,n可以为不等于0的数,n大于0。
具体地,上述配置文件在caffe中可以为一个或多个数据结构文件prototxt,可以在prototxt中的relu层中设置relu_param{upper_limit:n},即将relu层中上限参数赋值为n。此外,对上述caffe主程序的编译和执行可以参照caffe的相关描述,这里不再赘述。
可选地,所述上限参数被配置于caffe的数据结构文件中的relu激活层的参数中。在进行神经网络运算过程中,caffe主程序可以调用caffe的数据结构文件的接口。在caffe的数据结构文件中,配置针对relu激活层的上限参数,得到新的数据结构文件;所述数据结构文件存储有:各类型的神经网络层的参数设置,所述各类型的神经网络层包括relu激活层,所述relu激活层关联relu激活函数文件。在caffe中,上述数据结构文件一般为caffe.protot文件,存储有各类型的神经网络层的参数设置,其中各种类型的神经网络层可以包括卷积层、池化层、归一化层、激活层等,激活层具体可以为relu激活层、sigmoid激活层等。
S202,根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值。
可以理解的是,relu激活函数可以表示为:relu(x)=max(0,x),其中x为输入,relu(x)为输出。在实际应用中,可以预先对输入进行线性变换后再输入relu激活函数中,因此在数据结构文件的relu激活层中,可以存在negative_slope参数,用于对输入乘以negative_slope参数得到新的输入,以增加新的线性特征,扩大relu激活函数的适用范围。可选地,上述relu激活层的输入数据包括:目标神经网络中上述relu激活层的至少一个输入层的输出数据,上述relu激活层的输入层与该relu激活层存在依赖关系,即输入输出关系,是目标神经网络本身的属性,可以根据caffe中目标神经网络的配置文件得到,还可以通过caffe中的blob类得到。
电子设备可以将上述relu激活层的输入数据输入relu激活函数中,获得relu激活函数的输出数据作为中间输出值,具体地,可以调用预设的relu激活函数文件,采用relu函数接口来实现。
S203,上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
具体地,上述第一数值可以是0等数值,此时的上限参数对应的relun激活函数可能存在不适用的情况;因此当上限参数的值不等于第一数值时,电子设备可以继续根据上限参数的值和上述中间输出值计算,获得relun激活函数的值作为relu激活层的输出数据。
可选地,在一个实施例中,上述步骤S203可以包括如下步骤:
比较所述中间输出值与所述上限参数的值,将所述中间输出值与所述上限参数的值中的最小值作为所述relu激活层的输出数据。具体地,relun激活函数可以表示为:relun(x)=min(n,relu(x)),即对relu(x)的输出值通过上限参数n进行了限制。因此,需要在caffe的数据结构文件中配置针对relu激活层的上限参数upper_limit,即增加对上限参数的定义,否则基于caffe的逻辑会无法识别上限参数,导致出错;具体地,在caffe.proto中的ReLUParameter中增加一个新的参数upper_limit。
总之,本实施例的激活运算方法中,电子设备可以获取relun激活函数相对于relu激活函数的上限参数值,并根据该上限参数的值和relu激活函数的输出数据计算得到relu激活层的输出数据,则该relu激活层实际对应于relun激活函数,在对relu激活层的运算过程中实现了relun激活函数,因此可以提高目标神经网络在训练过程中的收敛性以及在推理过程中的精度。
可选地,本实施例的方法可以实现上述relun激活函数,也可以实现原有的relu激活函数。具体地,电子设备可以根据上限参数的值进一步确定目标激活运算方式。当所述上限参数的值等于第一数值时,将所述中间输出值作为所述relu激活层的输出数据,此时实现原有relu激活函数的功能。其中,第一数值的值可以为0,也可以为其它数值,可以用于标识此时需要采用relu激活函数而不是relun激活函数。可以理解的是,当上限参数的值等于第一数值时,可以实现relu激活函数;当上限参数的值不等于第一数值时,可以实现relun激活函数;本实施例中可以通过根据上限参数的值,灵活的选择relu激活函数或者relun激活函数。
可选地,所述上限参数的值为6,则可以实现relu6激活函数。因为大量实践表明,上限参数为6时的relu6激活函数最常用,对神经网络的性能的提升为最优。当然,在其他实施例中,该上限参数的值也可以为4、5、7、8或9等等,只要该上限参数的值大于0即可,此处仅用于举例说明,并不限定该上限参数的取值范围。
可选地,为了在原生caffe的relu函数文件的基础上实现relun函数的功能,本申请实施例对原生caffe的relu函数文件进行改进。具体地,所述relu激活层关联relu激活函数文件;所述relu激活函数文件中配置有第一逻辑,所述第一逻辑的输入为relu激活函数针对所述第一输入数据的中间输出值和所述上限参数的值,所述第一逻辑的输出为所述中间输出值和所述上限参数的值之间的最小值。可以理解的是,上述relu激活函数文件为初始的relu激活函数文件在配置上述第一逻辑之后的配置好的relu激活函数文件,初始的relu激活函数文件包括初始程序代码,用于实现relu激活函数的逻辑;在上述初始程序代码中添加上述第一逻辑后,relu激活函数文件可以在实现relu激活函数的逻辑之后实现上述第一逻辑,以实现relun激活函数的逻辑。本申请实施例中,通过在原生caffe的relun函数文件的基础上实现relun函数的功能,不仅可以提高基于caffe的网络的运行效率及精度,而且对caffe的框架改动最小,最大限度地保留了原生caffe的功能。
基于上述配置好的relu激活函数文件,电子设备可以调用上述配置好的relu激活函数文件实现上述S202-S203的步骤,可以避免针对每个目标神经网络的relu激活层重复编辑S202-S203对应的逻辑代码,因此更高效。
可选地,所述上限参数被配置于caffe的数据结构文件中的relu参数中。例如,caffe中可以为一个或多个数据结构文件prototxt,可以在prototxt中的relu层中设置relu_param{upper_limit:n},即将relu层中上限参数赋值为n。需要说明的是,本申请的激活运算方法不单可以应用于caffe场景中,还可以应用关于其它无法实现relun激活函数的场景中。
可选地,在一个实施例中,所述方法还包括如下步骤:
接收上限参数配置指令,根据所述上限参数配置指令设置所述上限参数的值。
具体地,电子设备可以根据用户输入的上限参数配置指令,在caffe的数据结构文件中配置上述的上限参数的值。即用户可以根据其网络的运行情况等因素,改变该上述参数的值。例如,电子设备可以根据其接收的上限参数配置指令,将caffe的数据结构文件中的上限参数的值配置为0,此时,电子设备在之后的运算过程中实现relu函数的功能,即将relu函数的中间输出值作为relu函数的输出数据。再如,电子设备可以根据其接收到的上限参数配置指令,将caffe的数据结构文件中的上限参数的值配置为6,此时,电子设备在之后的运算过程中实现relu6函数的功能,即将relu函数的中间输出值与上限参数的值中的最小值作为relu函数的输出数据。
所述方法能够应用于中央处理器或人工智能处理器中,当所述方法应用于所述人工智能处理器时,所述方法还可以包括如下步骤:对所述relu激活函数的接口进行封装及改进,以使得改进后的relu函数文件能够适用于人工智能处理器。
在一个实施方式中,涉及针对适用于中央处理器的第一relu激活函数文件的配置过程,具体可以包括:根据所述第一逻辑配置指令,在第一relu激活函数文件存储的初始程序代码之后,配置第一逻辑代码;其中,所述第一relu激活函数文件关联中央处理器,所述第一逻辑代码包括最小值函数的调用接口。上述第一relu激活函数文件可以为relu.cpp文件,适用于中央处理器,该文件中规定了实现relu激活函数的逻辑,即上述初始程序代码。本实施例中的第一relu激活函数文件关联中央处理器,因此本实施例中的relun激活函数的运算过程可以由中央处理器执行第一relu激活函数文件对应的指令来实现。
示例性地,对于第一relu激活函数文件而言,第二逻辑和第一逻辑可以体现为如下代码:
top_data=upper_limit?min(temp_data,upper_limit):temp_data;
即当上限参数upper_limit不为0时,会使用min(temp_data,upper_limit)选出较小的值作为输出,若上限参数upper_limit=0,则仍采用原有的relu算子(激活函数)的输出;其中top_data为输出,temp_data为原有的relu函数的输出。
在一个实施方式中,涉及针对适用于人工智能处理器的第二relu激活函数文件的配置过程,具体可以包括:根据所述第一逻辑配置指令,在第二relu激活函数文件存储的初始程序代码之后,配置第二逻辑代码;其中,所述第二relu激活函数文件关联机器学习处理器,所述第二逻辑代码包括适用于所述机器学习处理器的最小值算子的调用接口。上述第二relu激活函数文件可以为mlu_relu.cpp文件,适用于人工智能处理器;上述最小值算子的具体逻辑可以在与人工智能处理器关联的函数库中规定。本实施例中的第二relu激活函数文件关联人工智能处理器,因此本实施例中的relun激活函数的运算过程可以由人工智能处理器执行第二relu激活函数文件对应的指令来实现。
此外,上述relu激活函数文件中还可以配置有第二逻辑,其中,所述第二逻辑的输入为所述上限参数的值;当所述上限参数的值等于第一数值时,所述第二逻辑的输出为停止指令;当所述上限参数的赋值不等于第一数值时,所述第二逻辑的输出为跳转至所述第一逻辑的跳转指令;同样可以实现relu激活函数和relun激活函数的选择。
示例性地,对于第二relu激活函数文件而言,配置后的程序代码可以体现为如下逻辑:
if negative_slope:PreluOp
else:ActiveOp
if upper_limit:MinTcOp
其中,前两行体现为初始程序代码的逻辑,后一行体现为上述第二逻辑和第一逻辑。当negative_slope不等于0时(设置了negative_slope的赋值时),采用PreluOp算子,即对输入根据negative_slope对应的系数进行线性变化等操作得到新的输入,再对新的输入和0求最小值,实现一种变形的relu激活函数。当negative_slope等于0时,采用ActiveOp算子,即对输入和0求最小值,实现基本的relu激活函数。当upper_limit不等于0时(设置了upper_limit的赋值时),采用MinTcOp算子,即对上述初始程序代码的输出和upper_limit的赋值求最小值,实现relun激活函数;当upper_limit等于0时,则不进行操作,即实现了上述初始程序代码对应的relu激活函数。可以理解的是,在上述机器学习处理器关联的机器学习库中存储有上述PreluOp算子、ActiveOp算子、MinTcOp算子等算子的逻辑,并定义了调用接口。
示例性地,上述电子设备可以为异构的,包括中央处理器、机器学习处理器和存储器;存储器存储有计算机程序,中央处理器执行所述计算机程序时,可以对caffe的数据结构文件中relu层关联的relu激活函数文件进行判断,当relu激活函数文件为第一激活函数文件时,则在执行过程中可以对relu层中的relun激活函数进行编译,得到适用于中央处理器的relun的第一类计算指令,并根据该第一类计算指令和relu层的输入数据,得到relu层的输出数据,作为relu层的下一层的输入数据;当relu激活函数文件为第二激活函数文件时,则在执行过程中可以对relu层中的relun激活函数进行编译,得到适用于机器学习处理器的relun的第二类计算指令,并将该第二类计算指令和relu层的输入数据发送给机器学习处理器处理,得到机器学习处理器返回的relu层的输出数据,作为relu层的下一层的输入数据。
可选地,上述激活运算方法适用于SSD网络结构的目标神经网络,所述SSD网络结构的前端网络为mobilenetV2。其中,大量实践发现,relun激活函数相比于relu激活函数更适用于前端网络为mobilenetV2的SSD网络,可以SSD网络的检测精度,优选为relu6激活函数。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种激活运算装置,包括:数据获取模块31、中间输出模块32和目标输出模块33,其中:
数据获取模块31,用于获取relu激活层中的上限参数的值以及所述relu激活层的输入数据;
中间输出模块32,用于根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值;
目标输出模块33,用于当所述上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
可选地,所述中间输出模块32,可以包括:
中间输出单元,用于比较所述中间输出值与所述上限参数的值,将所述中间输出值与所述上限参数的值中的最小值作为所述relu激活层的输出数据。
可选地,所述装置还可以包括:
relu输出模块,用于当所述上限参数的值等于第一数值时,将所述中间输出值作为所述relu激活层的输出数据。
可选地,所述上限参数的值为6。
可选地,所述relu激活层关联relu激活函数文件;所述relu激活函数文件中配置有第一逻辑,所述第一逻辑的输入为relu激活函数针对所述第一输入数据的中间输出值和所述上限参数的值,所述第一逻辑的输出为所述中间输出值和所述上限参数的值之间的最小值。
可选地,所述上限参数被配置于caffe的数据结构文件中的relu参数中。
可选地,所述装置还可以包括:上限参数配置模块,用于接收上限参数配置指令,根据所述上限参数配置指令设置所述上限参数的值。
本实施例的激活运算装置中,电子设备可以获取relun激活函数相对于relu激活函数的上限参数值,并根据该上限参数的值和relu激活函数的输出数据计算得到relu激活层的输出数据,则该relu激活层实际对应于relun激活函数,在对relu激活层的运算过程中实现了relun激活函数,因此可以提高目标神经网络在训练过程中的收敛性以及在推理过程中的精度。
关于激活运算装置的具体限定可以参见上文中对于激活运算方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,本申请实施例还提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取relu激活层中的上限参数的值以及所述relu激活层的输入数据;
根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值;
当所述上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:比较所述中间输出值与所述上限参数的值,将所述中间输出值与所述上限参数的值中的最小值作为所述relu激活层的输出数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述上限参数的值等于第一数值时,将所述中间输出值作为所述relu激活层的输出数据。
在一个实施例中,所述上限参数的值为6。
在一个实施例中,所述relu激活层关联relu激活函数文件;所述relu激活函数文件中配置有第一逻辑,所述第一逻辑的输入为relu激活函数针对所述第一输入数据的中间输出值和所述上限参数的值,所述第一逻辑的输出为所述中间输出值和所述上限参数的值之间的最小值。
在一个实施例中,所述上限参数被配置于caffe的数据结构文件中的relu参数中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收上限参数配置指令,根据所述上限参数配置指令设置所述上限参数的值。
应当清楚的是,处理器执行计算程序实现的各个步骤的过程,与上述实施例的方法中各个步骤的实现过程基本一致,具体可参见上文中的描述,此处不再赘述。
在一个实施例中,本申请实施例还提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取relu激活层中的上限参数的值以及所述relu激活层的输入数据;
根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值;
当所述上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:比较所述中间输出值与所述上限参数的值,将所述中间输出值与所述上限参数的值中的最小值作为所述relu激活层的输出数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述上限参数的值等于第一数值时,将所述中间输出值作为所述relu激活层的输出数据。
在一个实施例中,所述上限参数的值为6。
在一个实施例中,所述relu激活层关联relu激活函数文件;所述relu激活函数文件中配置有第一逻辑,所述第一逻辑的输入为relu激活函数针对所述第一输入数据的中间输出值和所述上限参数的值,所述第一逻辑的输出为所述中间输出值和所述上限参数的值之间的最小值。
在一个实施例中,所述上限参数被配置于caffe的数据结构文件中的relu参数中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收上限参数配置指令,根据所述上限参数配置指令设置所述上限参数的值。
应当清楚的是,处理器执行计算程序实现的各个步骤的过程,与上述实施例的方法中各个步骤的实现过程基本一致,具体可参见上文中的描述,此处不再赘述。
示例性地,上述电子设备可以但不限于是数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种激活运算方法,其特征在于,应用于caffe框架中,以实现神经网络的推理或训练运算;所述方法包括:
接收上限参数配置指令,根据所述上限参数配置指令设置所述上限参数的值,得到caffe框架中神经网络的配置文件;其中,所述配置文件被配置于所述caffe框架的数据结构文件中的relu激活函数文件中;所述relu激活层关联relu激活函数文件;所述配置文件包括神经网络的不同层的参数的赋值;
调用并解析所述caffe框架中神经网络的配置文件,获得所述神经网络的relu激活层的上限参数的值;
获取所述relu激活层的输入数据;其中,所述神经网络能够对图像数据、文本数据、语音数据中的至少一种进行处理;
根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值;
当所述上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据的步骤,包括:
比较所述中间输出值与所述上限参数的值,将所述中间输出值与所述上限参数的值中的最小值作为所述relu激活层的输出数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述上限参数的值等于第一数值时,将所述中间输出值作为所述relu激活层的输出数据。
4.根据权利要求1所述的方法,其特征在于,所述上限参数的值为6。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述relu激活函数文件中配置有第一逻辑,所述第一逻辑的输入为所述中间输出值和所述上限参数的值,所述第一逻辑的输出为所述中间输出值和所述上限参数的值之间的最小值。
6.一种激活运算装置,其特征在于,应用于caffe框架中,以实现神经网络的推理或训练运算;所述装置包括:
接收模块,用于接收上限参数配置指令,根据所述上限参数配置指令设置所述上限参数的值,得到caffe框架中神经网络的配置文件;其中,所述配置文件所被配置于所述caffe框架的数据结构文件中的relu激活函数文件中;所述relu激活层与所述relu激活函数文件关联;
数据获取模块,用于调用并解析所述caffe框架中目标神经网络的配置文件,获得所述神经网络的relu激活层的上限参数的值;并获取所述relu激活层的输入数据;其中,所述神经网络能够对图像数据、文本数据、语音数据中的至少一种进行处理;
中间输出模块,用于根据所述relu激活层的输入数据,获得relu激活函数针对所述输入数据的中间输出值;
目标输出模块,用于当所述上限参数的值不等于第一数值时,根据所述上限参数的值和所述中间输出值,获得所述relu激活层的输出数据。
7.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,应用于机器学习框架中,以实现神经网络的推理或训练运算;所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种可读存储介质,其上存储有计算机程序,其特征在于,应用于机器学习框架中,以实现神经网络的推理或训练运算;所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811645222.3A CN109754071B (zh) | 2018-12-29 | 2018-12-29 | 激活运算方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811645222.3A CN109754071B (zh) | 2018-12-29 | 2018-12-29 | 激活运算方法、装置、电子设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109754071A CN109754071A (zh) | 2019-05-14 |
CN109754071B true CN109754071B (zh) | 2020-05-05 |
Family
ID=66405070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811645222.3A Active CN109754071B (zh) | 2018-12-29 | 2018-12-29 | 激活运算方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109754071B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203999A (zh) * | 2017-04-28 | 2017-09-26 | 北京航空航天大学 | 一种基于全卷积神经网络的皮肤镜图像自动分割方法 |
CN108229442A (zh) * | 2018-02-07 | 2018-06-29 | 西南科技大学 | 基于ms-kcf的图像序列中人脸快速稳定检测方法 |
CN108345934A (zh) * | 2018-01-16 | 2018-07-31 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
CN108681689A (zh) * | 2018-04-02 | 2018-10-19 | 中国科学院自动化研究所 | 基于生成对抗网络的帧率增强步态识别方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250812B (zh) * | 2016-07-15 | 2019-08-20 | 汤一平 | 一种基于快速r-cnn深度神经网络的车型识别方法 |
-
2018
- 2018-12-29 CN CN201811645222.3A patent/CN109754071B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203999A (zh) * | 2017-04-28 | 2017-09-26 | 北京航空航天大学 | 一种基于全卷积神经网络的皮肤镜图像自动分割方法 |
CN108345934A (zh) * | 2018-01-16 | 2018-07-31 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
CN108229442A (zh) * | 2018-02-07 | 2018-06-29 | 西南科技大学 | 基于ms-kcf的图像序列中人脸快速稳定检测方法 |
CN108681689A (zh) * | 2018-04-02 | 2018-10-19 | 中国科学院自动化研究所 | 基于生成对抗网络的帧率增强步态识别方法及装置 |
Non-Patent Citations (2)
Title |
---|
《受损图片分类的双并行交叉降噪卷积神经网络》;王达 等;;《计算机工程与应用》;20181011;第147-153页; * |
《激活函数导向的RNN算法优化》;张尧;《中国优秀硕士学位论文全文数据库信息科技辑》;20170715;第I140-14页; * |
Also Published As
Publication number | Publication date |
---|---|
CN109754071A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111461296B (zh) | 数据处理方法、电子设备和可读存储介质 | |
US9552825B2 (en) | Noise cancellation for voice activation | |
CN111144561A (zh) | 一种神经网络模型确定方法及装置 | |
CN109697500B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109446413B (zh) | 基于物品关联关系的序列化推荐方法 | |
CN113780466B (zh) | 模型迭代优化方法、装置、电子设备和可读存储介质 | |
JP6892424B2 (ja) | ハイパーパラメータチューニング方法、装置及びプログラム | |
CN109657788A (zh) | 数据处理方法、装置及相关产品 | |
CN112783616B (zh) | 一种并发冲突处理方法、装置及计算机存储介质 | |
KR20200069360A (ko) | 딥신경망 조성을 위한 방법 및 장치, 그리고 컴퓨터 프로그램 | |
KR102167747B1 (ko) | 사용자 이용 패턴을 신경망 알고리즘으로 분석하여 다음 어플리케이션을 예측하는 모바일 디바이스 메모리 관리 장치 및 방법 | |
CN109871941B (zh) | 数据处理方法、装置及相关产品 | |
CN111613273B (zh) | 模型训练方法、蛋白质相互作用预测方法、装置和介质 | |
CN113379070A (zh) | 一种深度学习框架转换方法、系统、存储介质及设备 | |
CN117235873B (zh) | 基于历史工作记录的智慧家居布局方法及系统 | |
CN109754071B (zh) | 激活运算方法、装置、电子设备和可读存储介质 | |
CN112906554B (zh) | 基于视觉图像的模型训练优化方法、装置及相关设备 | |
TWI647624B (zh) | 辨識系統、辨識方法及非暫態電腦可讀取媒體 | |
CN111739649B (zh) | 一种用户画像捕捉方法、装置及系统 | |
CN110874635A (zh) | 一种深度神经网络模型压缩方法及装置 | |
JP2023123636A (ja) | ハイパーパラメータチューニング方法、装置及びプログラム | |
CN114064125B (zh) | 指令解析方法、装置及电子设备 | |
CN113963241B (zh) | Fpga硬件架构及其数据处理方法、存储介质 | |
CN109858515A (zh) | 用于对智能制造的供应链进行订单分批配置的方法及系统 | |
CN109117786B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |