首页> 中国专利> 神经网络处理装置、神经网络处理方法和神经网络处理程序

神经网络处理装置、神经网络处理方法和神经网络处理程序

摘要

一种卷积神经网络(CNN)处理装置(1),设置有:输入缓冲器(10),用于存储要对CNN应用的输入信号A;权重缓冲器(11),用于存储权重U;卷积运算单元(12),执行包括输入信号A与权重U之间的乘积‑求和运算的卷积运算;存储单元16,存储表(160),在该表中,转换‑量化处理的输入与输出彼此相关联,其中,转换‑量化处理接受卷积运算的运算结果作为所述输入,基于预定条件来转换输入值,通过降低转换后的数据的比特精度来进行量化,并且输出结果;以及处理单元(14),参考表(160)以获取转换‑量化处理的与卷积运算的运算结果相对应的输出。

著录项

  • 公开/公告号CN112930543A

    专利类型发明专利

  • 公开/公告日2021-06-08

    原文格式PDF

  • 申请/专利权人 利普麦德股份有限公司;

    申请/专利号CN201980066531.1

  • 申请日2019-09-10

  • 分类号G06N3/04(20060101);G06F17/10(20060101);G06N3/08(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人倪斌

  • 地址 日本国东京都

  • 入库时间 2023-06-19 11:17:41

说明书

技术领域

本发明涉及神经网络处理装置、神经网络处理方法和神经网络处理程序。

背景技术

近年来,随着深度神经网络用于将图像分类成多个类别,卷积神经网络(CNN)已受到了关注。CNN的特征在于在深度神经网络中包括卷积层。卷积层对输入数据应用滤波器。更具体地,在卷积层中,滤波器的窗口滑动预定步幅,并且执行了将滤波器的元素乘以输入数据的对应滤波器并获得乘积之和的乘法-求和运算。

图13是示出了一般CNN的信号处理的过程的视图。CNN包括输入层、中间层和输出层(参见,例如非专利文献1和非专利文献2)。在中间层中,执行了将输入层乘以权重的卷积运算。

如图13中所示,根据卷积运算的结果的需要,在中间层中执行ReLU(整流线性单元)的检测处理或诸如BN(批标准化)的标准化(在下文中有时被统称为“转换”)。在一些情况下,执行了池化处理。

经由卷积运算提取的输入信号的特征被输入到由完全连接层形成的分类器,并且从输出层输出分类结果。如上所述,诸如CNN的神经网络的特征中的一个特征是重复地执行乘积-求和运算和转换运算。

在CNN中使用的输入数据的输入值或权重有时包括小数点。在诸如CNN的卷积神经网络的乘积-求和运算中,在确保如图13中的“输入信号”、“权重”和“卷积运算”所指示的运算结果的位数的同时执行算术处理。如上所述,在诸如CNN的卷积神经网络中,在由多个层形成的中间层等中,许多算术处理需要具有很多位的许多输入值。

相关技术文献

非专利文献

非专利文献1:K.He,X.Zhang,S.Ren和J.Sun,“Deep residual learning forimage recognition(用于图像识别的深度残差学习)”,CVPR会议论文集,2016。(*ResNet)

非专利文献2:Hideki Aso等,“Deep Learning(深度学习)”,Kindaikagaku-sha,2015年11月。

发明内容

本发明所要解决的问题

然而,当通过诸如FPGA(现场可编程门阵列)或微机之类的嵌入式硬件来实现诸如CNN的卷积神经网络时,计算资源受到限制。为此,用于具有很多位的许多输入值的许多算术处理的处理速度降低。

为了解决上述问题而做出了本发明,并且其目的是提供即使使用了嵌入式硬件也能够抑制神经网络的处理速度的降低的神经网络处理装置,以及神经网络处理方法。

解决问题的方案

为了解决上述问题,提供了一种神经网络处理装置,包括:第一存储器,被配置为存储提供给神经网络的输入信号;第二存储器,被配置为存储神经网络的权重;运算单元,被配置为执行神经网络的包括输入信号与权重的乘积-求和运算的卷积运算;第三存储器,被配置为存储表,该表被配置为使转换-量化处理的输入与输出彼此相关联,其中,该输入是运算单元的卷积运算的运算结果,并且该输出是基于预定条件来转换输入值和通过降低转换后的数据的比特精度来量化转换后的值的转换-量化处理的结果;以及处理单元,被配置为通过参考该表来获取转换-量化处理的与运算单元的运算结果相对应的输出。

为了解决上述问题,还提供了一种神经网络处理方法,包括:第一步骤,将提供给神经网络的输入信号存储在第一存储器中;第二步骤,将神经网络的权重存储在第二存储器中;第三步骤,执行神经网络的包括输入信号与权重的乘积-求和运算的卷积运算;第四步骤,将表存储在第三存储器中,该表被配置为使转换-量化处理的输入与输出彼此相关联,其中,该输入是第三步骤中的卷积运算的运算结果,并且该输出是基于预定条件来转换输入值和通过降低转换后的数据的比特精度来量化转换后的值的转换-量化处理的结果;以及,第五步骤,通过参考该表来获取转换-量化处理的与第三步骤中的运算结果相对应的输出。

为了解决上述问题,还提供了一种神经网络处理程序,该神经网络处理程序被配置为执行:第一步骤,将提供给神经网络的输入信号存储在第一存储器中;第二步骤,将神经网络的权重存储在第二存储器中;第三步骤,执行神经网络的包括输入信号与权重的乘积-求和运算的卷积运算;第四步骤,将表存储在第三存储器中,该表被配置为使转换-量化处理的输入与输出彼此相关联,其中,该输入是第三步骤中的卷积运算的运算结果,并且该输出是基于预定条件来转换输入值和通过降低转换后的数据的比特精度来量化转换后的值的转换-量化处理的结果;以及,第五步骤,通过参考该表来获取转换-量化处理的与第三步骤中的运算结果相对应的输出。

本发明的效果

根据本发明,由于通过参考表来获取转换-量化处理的与卷积运算的运算结果相对应的输出,该表被配置为使转换-量化处理的输入与输出彼此相关联,该转换量化处理基于预定条件来转换卷积运算的运算结果并通过降低转换后的数据的比特精度来量化转换后的值。因此即使使用了嵌入式硬件也可以抑制神经网络的处理速度的降低。

附图说明

图1是用于说明根据本发明的实施例的CNN处理装置的功能的概要的框图;

图2是示出了根据本发明的实施例的CNN处理装置的硬件布置的框图;

图3是用于说明根据本发明的实施例的CNN处理方法的过程的概要的视图;

图4是用于说明根据第一实施例的处理单元的功能的框图;

图5是用于说明根据第一实施例的表的布置的视图;

图6是用于说明根据第一实施例的处理单元的功能的视图;

图7是用于说明根据第二实施例的处理单元的功能的框图;

图8是用于说明根据第二实施例的表的布置的视图;

图9是用于说明根据第二实施例的CNN处理方法的过程的视图;

图10是用于说明根据第三实施例的处理单元的功能的框图;

图11是用于说明根据第三实施例的表的布置的视图;

图12是用于说明根据第三实施例的CNN处理方法的过程的视图;以及

图13是用于说明卷积CNN的算术处理的视图。

具体实施方式

现在将参考图1至图12详细地描述本发明的优选实施例。

[CNN处理装置的概要]

根据本发明的神经网络处理装置是将CNN用作神经网络的CNN处理装置1。

根据该实施例的CNN处理装置1是这样的算术处理装置:执行提供给CNN的输入信号与CNN的权重的乘积-求和运算;输出运算结果;以及还通过对运算结果应用ReLU来转换乘积-求和运算的结果。该算术处理包括:CNN的中间层中的卷积层的乘积-求和运算(在下文中有时也被称为“卷积运算”)、以及基于预定条件来转换卷积运算的运算结果的转换运算。注意,作为“转换”的示例,将在下面描述对卷积运算的运算结果应用ReLU的示例。

CNN处理装置1执行输入信号与权重的卷积运算,并且通过对运算结果应用ReLU来获得一个卷积层的输出。

为了便于描述,假设通过对卷积层的乘积-求和运算的结果应用ReLU而计算出的运算结果被用作下一卷积层的输入信号。CNN处理装置1重复地执行输入信号与权重的乘积-求和运算和转换运算,从而执行乘积-求和运算和转换处理与预先设置的CNN模型的卷积层的数量一样的次数。

[CNN处理装置的功能框]

上述CNN处理装置1包括输入缓冲器(第一存储器)10、权重缓冲器(第二存储器)11、卷积运算单元(运算单元)12、运算结果缓冲器13、处理单元14、输出缓冲器15和存储单元(第三存储器)16。

输入缓冲器10是存储提供给CNN的输入信号的存储器。更具体地,通过稍后要描述的主存储设备103来实现输入缓冲器10,并且从外部提供的图像数据等被存储在输入缓冲器10中。提供给输入缓冲器10的输入信号可以是预先经历预处理的图像数据。预处理的示例是单色转换、对比度调整和亮度调整。输入信号可以被减小为使得其具有根据在CNN处理装置1中预先设置的CNN模型而设置的比特深度。

关于提供给输入缓冲器10的输入信号的值,例如,使用了包括小数点且由32比特或16比特精度的浮点数的数组表示的值、或者通过将这些值减小到预设比特数表达而获得的值。

权重缓冲器11是存储CNN的权重的存储器。更具体地,通过稍后要描述的主存储设备103来实现权重缓冲器11,并且存储在存储单元16或安装在CNN处理装置1外部的服务器(未示出)中的CNN的权重参数被加载到权重缓冲器11中。在该实施例中,关于权重的值,使用了包括小数点且由32比特或16比特精度的浮点数的数组表示的值、或者通过将这些值减小到预设比特数表达而获得的值。

卷积运算单元12执行CNN的包括存储在输入缓冲器10中的输入信号与存储在权重缓冲器11中的权重的乘积-求和运算的卷积运算。更具体地,卷积运算单元12分别从输入缓冲器10和权重缓冲器11读出输入信号和权重,并且根据形成在CNN处理装置1中预先设置的CNN模型的卷积层来执行卷积运算。从卷积运算单元12输出的运算结果被提供给运算结果缓冲器13。

运算结果缓冲器13缓冲卷积运算单元12的卷积运算的结果。

处理单元14参考存储在存储单元16中的表160,并且输出针对从运算结果缓冲器13读出的卷积运算的结果执行转换和量化处理(在下文中有时也被称为“转换-量化处理”)的结果。更具体地,处理单元14读出存储在运算结果缓冲器13中的卷积运算结果,并且通过参考存储转换-量化处理的输入/输出关系的表160来获取和输出与转换-量化处理的输入相对应的值。

卷积运算的结果的转换例如包括诸如ReLU的激活函数的应用或使用BN的标准化等,并且是指基于预定条件来转换卷积运算的运算结果。激活函数决定卷积运算的运算结果。

对卷积运算的结果应用的ReLU是斜坡函数,用于在卷积运算的结果为负值的情况下将其转换为0或者在卷积运算的结果为正值的情况下将其转换为线性变换值。如上所述,预先确定转换卷积运算的运算结果的诸如ReLU的处理的输入/输出关系。

另一方面,为了减少运算负荷,通过降低比特精度对通过经由ReLU等转换卷积运算的运算结果而获得的值进行量化。数据的量化例如包括诸如舍入、向上舍入、向下舍入、以及舍入到最近的偶数之类的总所周知的分数处理,并且是指例如通过将经由ReLU转换卷积运算的结果而获得的值(例如,包括小数点的值)转换成整数来施加限制。

处理单元14参考表160,在该表中,例如彼此相关联地存储ReLU的输入(即,乘积-求和运算的结果)和通过进一步量化ReLU的输出而获得的值。因此,处理单元14可以通过ReLU和量化处理一起来执行卷积运算的运算结果的转换处理。

即,处理单元14获取通过两个算术处理(即,通过ReLU等的卷积运算的结果的转换处理和通过参考表160的量化处理)而获得的值。

输出缓冲器15暂时地存储通过处理单元14而获取的输出。

存储单元16包括表160。存储单元16存储来自处理单元14的输出,该输出暂时地存储在输出缓冲器15中。

表160存储彼此相关联的转换-量化处理的输入和输出。更具体地,表160存储这样的数据,其中,诸如ReLU的预定转换处理的输入与通过量化通过ReLU来转换的值而获得的输出彼此相关联,所述量化是通过预设分数处理来进行的。

[CNN处理装置的硬件布置]

接下来将参考图2的框图来描述具有上述功能的CNN处理装置1的硬件布置的示例。

如图2中所示,可以通过例如包括如下项的计算机来实现CNN处理装置1:经由总线101连接的处理器102、主存储设备103、通信接口104、辅助存储设备105和输入/输出设备106、以及被配置为控制这些硬件资源的程序。

要由处理器102使用来执行各种控制和运算的程序被预先存储在主存储设备103中。通过处理器102和主存储设备103,实现了包括图1中所示的卷积运算单元12和处理单元14的CNN处理装置1的功能。

通过主存储设备103,实现了参考图1所描述的输入缓冲器10、权重缓冲器11、运算结果缓冲器13和输出缓冲器15。

通信接口104是被配置为经由通信网络NW执行与各个外部电子设备的通信的接口电路。可以经由通信接口104从外部服务器等接收诸如要由CNN处理装置1使用的图像数据和权重之类的输入信号。

通过被配置为从存储介质读取/向存储介质写入诸如程序和数据之类的各种信息的可读/可写存储介质和驱动设备来形成存储设备105。在辅助存储设备105中,诸如闪存的硬盘或半导体存储器可以被用作存储介质。

辅助存储设备105包括:存储区域,被配置为存储从外部获取的输入数据和权重,以及程序存储区域,被配置为存储由CNN处理装置1使用来执行CNN的诸如卷积运算的算术处理的程序。通过辅助存储设备105来实现参考图1所描述的存储单元16。而且,例如辅助存储设备105可以包括被配置为备份上述数据或程序的备份区域。

通过从外部设备输入信号或对外部设备输出信号的I/O端子来形成输入/输出设备106。显示设备(未示出)可以被设置为经由输入/输出设备106显示由CNN处理装置1输出的运算结果。

存储在辅助存储设备105的程序存储区域中的程序可以是被配置为根据要在本说明书中描述的CNN处理方法的顺序在时间上连续地执行处理的程序,或者可以是被配置为并行地或在诸如调用的定时之类的必要定时执行处理的程序。程序可以由一个计算机处理,或者可以由多个计算机分布式地处理。

[CNN处理方法]

接下来将参考图3来描述具有上述布置的CNN处理装置1的运算的概要。首先,输入缓冲器10和权重缓冲器11分别暂时地存储从安装在CNN处理装置1外部的服务器等提供的输入信号A和权重U(步骤S1和步骤S2)。

输入信号A是矢量化的输入图像数据,并且具有竖直方向和水平方向上的维度。输入信号A的值由例如包括小数点的多位值表示。另一方面,权重U是由矩阵表示的核的元素,并且是通过CNN的学习来调整、更新并最终决定的参数。权重U的值具有竖直方向和水平方向上的维度,并且每个元素由例如包括小数点的多位值表示。

接下来,卷积运算单元12分别从输入缓冲器10和权重缓冲器11读出输入信号A和权重U,并且执行卷积运算(步骤S3)。更具体地,卷积运算单元12将输入信号A的矢量乘以权重U的矩阵。

更具体地,卷积运算单元12使CNN的预设滤波器的窗口滑动预定步幅。卷积运算单元12将权重U的元素乘以输入信号A在滤波器的每个位置上的对应元素,并且获得乘积之和。

卷积运算单元12将乘积-求和运算的卷积运算的运算结果X存储在运算结果缓冲器13的对应位置中(步骤S4)。

在此之后,处理单元14从运算结果缓冲器13读出卷积运算的结果X,并且通过参考存储单元16中的表160来获取运算结果X的转换-量化处理的输出Y(步骤S5)。获取到的输出Y被暂时地存储在输出缓冲器15中,由处理器102读出,并且输出(步骤S6)。

注意,可以根据需要来针对处理单元14获取到的输出Y执行众所周知的池化处理(参见非专利文献2)。步骤S6中所获得的输出Y被输入到形成后续的分类器的完全连接层(未示出),并且鉴别了输入信号A的图像数据。

如上所述,根据本发明的CNN处理装置1将表160存储在存储单元16中,该表被配置为使诸如ReLU的转换处理的输入与通过量化由ReLU转换的值而获得的输出彼此相关联。CNN处理装置1通过参考表160来获取转换-量化处理的与卷积运算的运算结果相对应的输出。因此,与单独地执行针对转换后的值的诸如ReLU的转换处理和量化处理的情况相比,可以减少CNN处理装置1的计算负荷。而且,结果是,可以加速CNN的信号处理。

[第一实施例]

作为具有上述布置的CNN处理装置1的详细示例,接下来将描述根据本发明的第一实施例的CNN处理装置1。图4是示出了CNN处理装置1的处理单元14的功能布置的框图。CNN处理装置1的其余组件与参考图1所描述的组件相同。图5是用于说明表160的数据结构的视图。图6是用于说明处理单元14的转换-量化处理的视图。

[处理单元的功能框]

处理单元14包括输入确定单元140和输出获取单元141。输入确定单元140从运算结果缓冲器13读出卷积运算的运算结果,将该运算结果与转换-量化处理的每个预设输入区间进行比较,并且确定包括卷积运算的运算结果(即,转换-量化处理的输入的值)的输入区间。

存储在存储单元16中的表160存储这样的数据,其中,通过将转换-量化处理的输入划分成多个连续区间而获得的输入区间中的每个输入区间与通过量化通过ReLU来转换的值而获得的值彼此相关联。

更具体地,如图5中所示,表160存储这样的数据,其中,例如,转换-量化处理的输入被划分成五个区间,并且每个输入区间与转换-量化处理的输出彼此相关联。例如,如果卷积运算的运算结果X为“1”,则输入确定单元140通过与每个输入区间进行比较,来确定运算结果X对应于输入区间1≤X<2。

输出获取单元141通过参考存储在存储单元16中的表160,根据输入确定单元140的确定结果,来获取转换-量化处理的与输入区间相对应的输出Y。

更具体地,如图6中所示,输出获取单元141获取转换-量化处理的与五个输入区间中的由输入确定单元140确定的一个输入区间相对应的输出Y。在图6中所示的转换-量化处理的示例中,一起执行两个算术处理(即,通过ReLU的转换处理和通过预设分数处理的量化处理)。

[CNN处理方法]

接下来将参考图3来描述根据该实施例的包括上述输入确定单元140的CNN处理装置1的操作。注意,在根据该实施例的CNN处理方法中,步骤S1至步骤S4与CNN处理方法的概要中所描述的处理相同。

首先,输入缓冲器10和权重缓冲器11分别暂时地存储从安装在CNN处理装置1外部的服务器等提供的输入信号A和权重U(步骤S1和步骤S2)。

接下来,卷积运算单元12分别从输入缓冲器10和权重缓冲器11读出输入信号A和权重U,并且执行卷积运算(步骤S3)。更具体地,卷积运算单元12将输入信号A的矢量乘以权重U的矩阵。

接下来,卷积运算单元12将乘积-求和运算的卷积运算的运算结果X存储在运算结果缓冲器13的对应位置中(步骤S4)。

在此之后,处理单元14从运算结果缓冲器13读出卷积运算的结果X,并且通过参考存储单元16中的表160来获取通过运算结果X的转换-量化处理而获得的输出Y(步骤S5)。更具体地,对于卷积运算的结果X(即,转换-量化处理的输入X),输入确定单元140针对转换-量化处理的每个预设输入区间进行值的比较,并且确定包括运算结果X的值的输入区间。在此之后,输出获取单元141通过参考表160来获取转换-量化处理的与输入确定单元140确定出的输入区间相对应的输出Y。

获取到的输出Y被暂时地存储在输出缓冲器15中,由处理器102读出,并且输出(步骤S6)。

如上所述,根据第一实施例的CNN处理装置1,确定了转换-量化处理的多个连续输入区间中的哪个连续输入区间包括卷积运算的运算结果(即,转换-量化处理的输入的值),并且基于确定结果,通过参考表160,来获取转换-量化处理的输出。

因此,由于可以通过确定输入区间和参考表160来执行卷积运算的运算结果的诸如ReLU的转换处理和量化处理,因此即使使用了嵌入式硬件也可以减少CNN的运算负荷并抑制处理速度的降低。

另外,表示转换-量化处理的输入/输出关系的表160被存储在诸如辅助存储设备105的硬件的存储区域中。为此,通过根据神经网络的形式来替换表160中的值,可以更灵活地通过硬件来实现具有期望的处理功能的神经网络。

[第二实施例]

接下来将描述本发明的第二实施例。注意,在以下描述中,与上述第一实施例中相同的附图标记表示相同的部件,并且将省略其描述。

在第一实施例中,已描述了这样的情况,其中,处理单元14包括输入确定单元140,并且在转换-量化处理中,输入确定单元140将卷积运算的运算结果与多个连续输入区间进行比较。然而,在第二实施例中,处理单元14包括阈值处理单元(第一阈值处理单元)142,该阈值处理单元针对转换-量化处理的输入执行阈值处理。下面将主要描述与第一实施例不同的组件。

[处理单元的功能框]

处理单元14包括输出获取单元141和阈值处理单元142。

阈值处理单元142从运算结果缓冲器13读出卷积运算的运算结果,并且将该运算结果与针对转换-量化处理的输入预先设置的阈值进行比较。

如图8中所示,根据该实施例的存储单元16中的表160A存储这样的数据,其中,例如,针对转换-量化处理的输入设置五个阈值,并且每个阈值与转换-量化处理的输出彼此相关联。

例如,阈值处理单元142比较了卷积运算的运算结果X是否小于所设置的阈值或等于或大于阈值。更具体地,如果卷积运算的运算结果X为“1”,则阈值处理单元142输出表示运算结果X(“1”)小于所设置的阈值“2”且等于或大于阈值“1”的比较结果。

输出获取单元141基于阈值处理单元142的比较结果,通过参考表160A,来获取转换-量化处理的与根据比较结果的输入的阈值相对应的输出Y。通过输出获取单元141获取到的输出被暂时地存储在输出缓冲器15中。

[CNN处理方法]

接下来将参考图9来描述根据该实施例的包括上述阈值处理单元142的CNN处理装置1的操作。注意,在根据该实施例的CNN处理方法中,步骤S1至步骤S4与图3中所示的CNN处理方法的概要中所描述的处理相同。

首先,输入缓冲器10和权重缓冲器11分别暂时地存储从安装在CNN处理装置1外部的服务器等提供的输入信号A和权重U(步骤S1和步骤S2)。

接下来,卷积运算单元12分别从输入缓冲器10和权重缓冲器11读出输入信号A和权重U,并且执行卷积运算(步骤S3)。更具体地,卷积运算单元12将输入信号A的矢量乘以权重U的矩阵。

接下来,卷积运算单元12将乘积-求和运算的卷积运算的运算结果X存储在运算结果缓冲器13的对应位置中(步骤S4)。

在此之后,处理单元14从运算结果缓冲器13读出卷积运算的结果X,并且通过参考存储单元16中的表160A来获取通过运算结果X的转换-量化处理而获得的输出Y(步骤S5A)。更具体地,阈值处理单元142将卷积运算的结果X与针对转换-量化处理的输入预先设置的阈值进行比较,并且输出小于运算结果X的阈值。在此之后,输出获取单元141通过参考表160A来获取与阈值处理单元142所输出的输入阈值相对应的输出Y。

获取到的输出Y被暂时地存储在输出缓冲器15中,由处理器102读出,并且输出(步骤S6)。

如上所述,根据第二实施例的CNN处理装置1,针对转换-量化处理的输入预先设置的阈值和被配置为将阈值与转换-量化处理的输出彼此相关联的表160A被存储在存储单元16中。另外,输出获取单元141通过参考表160A,基于阈值与卷积运算的运算结果的比较结果,来获取转换-量化处理的输出。

为此,可以通过阈值处理来执行针对卷积运算的运算结果的通过ReLU等的转换处理和卷积运算的运算结果的量化处理。因此,如果转换-量化处理的输出单调增加或单调减少,则可以通过与阈值进行比较唯一地决定转换-量化处理的输出。

特别地,当通过预定硬件来实现CNN处理装置1时,使用输入区间的比较需要顺序处理,但是输入与阈值之间的比较可以一次完成。因此,根据CNN处理装置1,即使使用了嵌入式硬件,也可以以较高的速度执行CNN的算术处理。

[第三实施例]

接下来将描述本发明的第三实施例。注意,在以下描述中,与上述第一实施例和第二实施例中相同的附图标记表示相同的部件,并且将省略其描述。

在第二实施例中,已描述了这样的情况,其中,如果转换-量化处理的输出单调增加或单调减少,则阈值处理单元142执行与针对转换-量化处理的输入预先设置的阈值处理单元的比较。然而,在第三实施例中,基于用于识别转换-量化处理的输出单调增加的输入区间和转换-量化处理的输出单调减少的输入区间的划分信息,仅在转换-量化处理的输入的值所属的输入区间中执行阈值处理。下面将主要描述与第一实施例和第二实施例不同的组件。

[处理单元的功能框]

处理单元14包括输入确定单元140、输出获取单元141和阈值处理单元142(第二阈值处理单元)。

基于用于识别转换-量化处理的输出单调增加的输入区间和转换-量化处理的输出单调减少的输入区间的划分信息,输入确定单元140确定运算单元的卷积运算的运算结果X所属的转换-量化处理的输入区间。

阈值处理单元142在输入确定单元140确定出的输入区间中,将卷积运算单元12的运算结果X与针对转换-量化处理的每个输入预先设置的多个阈值进行比较,并且输出与运算结果X相对应的阈值。

输出获取单元141通过参考存储在存储单元16中的表160B来获取转换-量化处理的与阈值处理单元142所输出的阈值相对应的输出Y。

存储单元16存储表160B。如图11中所示,表160B存储这样的数据,其中,用于识别转换-量化处理的输出单调增加的输入区间和转换-量化处理的输出单调减少的输入区间的划分信息、针对转换-量化处理的每个输入预先设置的多个阈值、以及转换-量化处理的与多个阈值相对应的输出分别彼此相关联。

划分信息包括例如表示通过进一步量化已经历了诸如激活函数的转换处理的卷积运算的运算结果而获得的输出的情况下的单调增加和单调减少切换的顶点的信息由如二次函数的单调增加的区间和单调减少的区间形成。

如图11的示例中所示,在转换-量化处理的输入/输出关系中,输出Y的单调增加和单调减少在输入X=6处转换。

在图11的示例中,例如假设卷积运算的运算结果X(输入X)小于“6”(X<6)。在这种情况下,输入确定单元140确定转换-量化处理的输入X属于输出单调增加的输入区间。

[CNN处理方法]

接下来将参考图12来描述根据该实施例的具有上述布置的CNN处理装置1的操作。注意,在根据该实施例的CNN处理方法中,步骤S1至步骤S4与图3中所示的CNN处理方法的概要中所描述的处理相同。

首先,输入缓冲器10和权重缓冲器11分别暂时地存储从安装在CNN处理装置1外部的服务器等提供的输入信号A和权重U(步骤S1和步骤S2)。

接下来,卷积运算单元12分别从输入缓冲器10和权重缓冲器11读出输入信号A和权重U,并且执行卷积运算(步骤S3)。更具体地,卷积运算单元12将输入信号A的矢量乘以权重U的矩阵。

接下来,卷积运算单元12将乘积-求和运算的卷积运算的运算结果X存储在运算结果缓冲器13的对应位置中(步骤S4)。

在此之后,处理单元14从运算结果缓冲器13读出卷积运算的结果X,并且通过参考存储单元16中的表160B来获取通过运算结果X的转换-量化处理而获得的输出Y(步骤S5B)。

更具体地,基于用于识别转换-量化处理的输出单调增加的输入区间和转换-量化处理的输出单调减少的输入区间的划分信息,输入确定单元140确定转换-量化处理的输入X(即,卷积运算的运算结果X)所属的输入区间。

在此之后,阈值处理单元142在输入确定单元140确定出的输入区间中,将卷积运算的运算结果X(输入X)与针对转换-量化处理的输入X预先设置的阈值进行比较,并且根据比较结果来输出阈值。在此之后,输出获取单元141通过参考表160B来获取转换-量化处理的与阈值处理单元142所输出的阈值相对应的输出Y。

获取到的输出Y被暂时地存储在输出缓冲器15中,由处理器102读出,并且输出(步骤S6)。

如上所述,根据第三实施例的CNN处理装置1,基于用于识别转换-量化处理的输出Y单调增加的输入/输出区间和转换-量化处理的输出单调减少的输入/输出区间的划分信息,来确定转换-量化处理的输入X所属的区间。在确定出的输入区间中执行针对转换-量化处理的输入X的阈值处理,并且通过参考表160B来获取转换-量化处理的输出Y。

为此,即使转换-量化处理的输入/输出关系不是单调增加或单调减少,也针对单调增加和单调减少的区间中的每个区间执行阈值处理。因此,可以以更高的速度执行CNN的算术处理。

已在上面描述了根据本发明的神经网络处理装置、神经网络处理方法和神经网络处理程序的实施例。然而,本发明不限于上述实施例,并且在不脱离本发明所附权利要求的范围的情况下,可以做出本领域技术人员所设想的各种改变和修改。

例如,在上述实施例中,已将CNN作为神经网络的示例进行了描述。然而,神经网络处理装置所采用的神经网络不限于CNN。

注意,可以使用通用处理器、GPU、数字信号处理器(DSP)、专用集成电路(ASIC)、FPGA或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件、或者被设计为实现上述功能的上述设备中的一些设备的组合来执行与在此公开的实施例相关联地描述的各种功能块、模块和电路。

微处理器可以被用作通用处理器。相反,也可以使用根据卷积技术的处理器、控制器、微控制器或状态设备。处理器还可以被实现为例如DSP与微处理器的组合、多个微处理器、连接到DSP核的一个或多个微处理器、或者任意配置的计算设备的组合。

附图标记的说明

1、CNN处理装置,10、输入缓冲器,11、权重缓冲器,12、卷积运算单元,13、运算结果缓冲器,14、处理单元,15、输出缓冲器,16、存储单元,101、总线,102、处理器,103、主存储设备,104、通信接口,105、辅助存储设备,106、输入/输出设备,160、表,NW、通信网络,U、权重,A、输入信号。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号