神经处理滤波器的制作方法

文档序号:26838454发布日期:2021-10-08 19:11阅读:115来源:国知局
神经处理滤波器的制作方法
神经处理滤波器


背景技术:
技术领域
1.本公开涉及一种计算机实现的方法、一种非暂时性计算机可读存储介质以及一种用于在神经处理单元中提供滤波器的系统。
2.相关技术的描述
3.神经处理系统可采用神经处理单元“npu”。npu(也被称为神经处理器、神经网络加速器和ai加速器)用于加速机器学习算法。通过包括被设计用于一个或多个指定的神经网络架构的专用电子电路,npu比通用处理器更高效地处理输入数据,诸如图像数据。
4.一种特定类型的神经网络被称为卷积神经网络“cnn”,并且常规地用于图像分类。cnn包括一个或多个卷积层,该卷积层中的每一者取得输入特征图并将其与滤波器(也被称为内核)卷积,以产生输出特征图。卷积的目的是从输入特征图提取高级特征,诸如图像中的边缘。卷积层的滤波器包括一组权重,该组权重在卷积运算中乘以输入特征图中的值以生成输出特征图中的值。cnn还包含其他层类型,诸如输入、输出、池化和全连接。
5.其他类型的神经网络也采用滤波器。用于对时间动态行为进行建模的循环神经网络“rnn”包括布置在连续层中的神经元样节点的网络。输入节点从网络外部接收数据,输出节点产生结果,并且隐藏节点在输入与输出之间修改数据。一个层中的每个节点经由单向连接连接到下一连续层中的每个其他节点。每个节点都具有时变实值激活。每个连接都具有可修改的实值权重。rnn中的这些权重也可由滤波器表示。
6.因此,滤波器形成神经网络的关键要素并通常消耗大量处理。


技术实现要素:

7.本公开涉及一种在神经处理单元中提供滤波器的计算机实现的方法。根据本公开的第一方面,所述方法包括:
8.‑
接收与滤波器的目标维度相对应的输入;
9.‑
接收与在神经处理单元中可实现的多个子滤波器中的每一者的子滤波器维度相对应的输入;以及
10.‑
将滤波器定义为多个子滤波器的组合,组合具有等同于目标维度的维度,并且其中组合中的子滤波器中的至少两者的子滤波器维度不相等。
11.根据本公开的第二方面,多个子滤波器中的每一者的子滤波器维度包括表示子滤波器的列数的x维参数和表示子滤波器的行数的y维参数,并且其中每个子滤波器的尺寸由x维参数和相应的y维参数的乘积定义;并且其中将滤波器定义为多个子滤波器的组合包括将子滤波器相继地包括在组合中直到滤波器的目标维度被组合填充而没有剩余空间为止,每个包括的子滤波器具有适合剩余空间的最大可能的子滤波器尺寸。
12.根据本公开的第三方面,提供了一种非暂时性计算机可读存储介质。
13.根据本公开的第四方面,提供了一种系统。
14.关于计算机实现的方法公开的功能也可在所述非暂时性计算机可读存储介质和所述系统中实现。
15.从参考附图进行的对仅通过示例方式给出的优选实施方案的以下描述,另外的方面、特征和优点将变得显而易见。
附图说明
16.图1示出了在卷积层cl1中将滤波器f
1..k
应用于输入特征图ifm1以生成输出特征图ofm1的现有技术cnn。
17.图2示出了其中可实现cnn的现有技术神经处理单元。
18.图3a

3e示出了用于在仅能够提供4
×
4、4
×
1、1
×
4和1
×
1滤波器的npu中提供10
×
6滤波器的一些现有技术。
19.图4a

4h示出了根据本公开的一些方面的在神经处理单元中提供滤波器f的方法的实施方案。
20.图5示出了根据本公开的一些方面的在神经处理单元中提供滤波器f的方法的流程图。
21.图6a

6d示出了根据本公开的一些方面的扩张滤波器的实现方式。
22.图7示出了根据本公开的一些方面的在cnn中使用滤波器的流程图。
23.图8示出了包括处理器proc和存储器mem的系统sy。
具体实施方式
24.参考以下描述和附图提供本技术的实施方案。在该描述中,出于解释目的,阐述了某些示例的许多具体细节。说明书中对“示例”、“实施方案”或类似语言的引用意味着结合该示例描述的特征、结构或特性至少被包括在该一个示例中。还应了解,关于一个示例或实施方案描述的特征也可用于另一个示例或实施方案中,并且为了简洁起见,不必重复所有特征。
25.在本公开中,参考了在cnn的卷积层的背景下的滤波器的实施方案。然而,应了解,滤波器可用于其他类型的层和其他类型的神经网络(诸如像rnn)中。
26.另外,图1示出了在卷积层cl1中将滤波器f
1..k
应用于输入特征图ifm1以生成输出特征图ofm1的现有技术cnn。图1的cnn可例如用于将提供到cnn的图像分类为输入特征图ifm1。图1的示例cnn包括两个卷积层cl1、cl2。每个卷积层包括滤波器f1、f2,所述滤波器与输入特征图卷积以生成输出特征图。输入特征图以阵列的形式提供并且可被描述为具有某些维度;具体地,以下一项或多项:等于输入特征图中的列数的列维度、等于输入特征图中的行数的行维度,以及深度维度。使用其中输入特征图ifm1是图像的示例,输入特征图ifm1阵列的列和行维度可标识图像中的位置,诸如像素,并且深度维度可与由输入特征图ifm1表示的图像中的特定颜色通道(诸如红色、绿色和蓝色)相对应。在该示例中,阵列元素的值则与由输入特征图ifm1中的图像表示的每个像素的红色、绿色和蓝色通道中的每一者的强度相对应。尽管在图1中将图像用作输入特征图ifm1的示例,但应注意,cnn可用于对其他类型的数据(包括文本和语音)进行建模且此外进行分类或后处理。与输入特征图ifm1一样,图1中的滤波器f1、f2中的每一者也可被描述为具有某些维度的阵列:同样,这些维度可包括以
下一项或多项:等于滤波器中的列数的列维度x、等于滤波器中的行数的行维度y,以及深度维度z。图1中的示例滤波器f1具有x列和y行并且深度为z=5,如通过其最终输出特征图ofm1的深度为5来表示。然而,为了简单起见,仅示出了滤波器f1的第一层z=1。
27.继续参考图1,卷积层cl1中的卷积步骤涉及使滤波器f1在输入特征图ifm1上步进,同时在每一步处:将滤波器f1中的每个元素或“权重”与其在输入特征图ifm1中的对应元素相乘,并且对滤波器f1中的所有x、y位置的结果求和。滤波器中的所有x、y位置的求和结果提供在该步处的输出特征图ofm1的数据值。步长由滤波器“步幅”确定。在按由步幅确定的步长使滤波器步进之后,再次针对在新位置处的滤波器中的所有x、y位置计算求和结果,并且这提供在该步处的输出特征图ofm1的数据值。对于滤波器f1的深度维度z中的每一步以相同方式执行该卷积运算,并且因此输出特征图ofm1具有等于滤波器f1的深度维度z的深度维度。
28.进一步参考图1中的卷积层cl1,输出特征图ofm1然后进行池化或“子采样”运算,其中输出特征图ofm1中的元素组p1的值缩小为输出阵列中的单个值。该池化或子采样运算可例如包括将组p1中的单独值用它们的平均值或它们的最大值替换。池化运算典型地用于减小输入到下一个卷积层(在这种情况下为cl2)的阵列的维度。然后,卷积层cl1的输出用作对卷积层cl2的输入特征图。
29.在卷积层cl2中也执行与参考卷积层cl1所描述的那些运算类似的运算。具体地,由滤波器f2执行卷积运算,并且用分组p2对卷积的结果执行池化运算。
30.然后提供图1中的卷积层cl2的输出作为对分类器层的输入。分类器层可包括一个或多个全连接层,并且它获取卷积层cl2的输出并提供n维向量作为输出,其中n是程序必须选择以对输入图像进行分类的类别的数量。
31.在训练过程期间,通过被称为反向传播的机制来调整图1中的滤波器f1、f2的权重以优化其值。调整滤波器权重,使得cnn对属于同一分类的各种不同图像进行分类,其中它们具有相同分类的概率很高。这完成之后,然后可将具有优化的滤波器权重的滤波器与新闻图像卷积,以确定新闻图像中的每一个属于哪个分类。
32.从cnn的以上描述中可理解,卷积给处理器带来沉重的处理负担。实际上,b.fleischer等人在2018年vlsi研讨会上的标题为“a scalable multi

teraops deep learning processor core for ai training and inference”的文件报告了卷积占普通神经网络中的处理的70%至90%。因此,对卷积过程的效率的任何改进都将对cnn产生巨大影响;并且同样对使用滤波器的其他神经网络产生巨大影响。
33.图2示出了其中可实现cnn的现有技术神经处理单元。参考图2,在该示例中,十六个计算引擎可用于执行多达十六个同时卷积。单元:接口、dma引擎、控制单元和同步单元管理往返十六个计算引擎的数据流。每个计算引擎内都有mac引擎,所述mac引擎执行每个卷积的实际“乘法与累加”部分。每个计算引擎还包括呈静态ram单元sram的形式的存储器。在运算中,将输入特征图存储在sram中并且通过dma单元、控制单元和同步单元路由到计算引擎中的一者中的mac引擎。同步单元还基于输入特征图和滤波器的尺寸来确定是否需要将输入特征图和滤波器中的一者或两者细分为更小且因此更可处理的块。单元sram还存储在mac引擎中使用的滤波器的滤波器权重,并且这些由mac引擎经由权重解码器来接收。因此,mac卷积引擎将输入特征图与滤波器进行卷积,并且得到的输出特征图通过可编程层引擎
从mac引擎传递到sram。
34.根据网络的性质,在卷积层中使用的滤波器的维度可大不相同。然而,诸如图2中示出的已知的神经处理单元常规地仅能够自然地实现有限数量的尺寸的滤波器。例如,特定神经处理单元可能仅提供具有以下维度(表示为列数
×
行数)的滤波器:4x4、4x1、1x4或1x1。滤波器尺寸由集成电路设计人员在制作神经处理单元时在硬件中固定。当在神经处理单元上实现神经网络时,程序员应考虑可用的该神经网络的滤波器的尺寸和维度,以及如何综合修改神经网络滤波器以便容纳在神经处理单元所支持的滤波器尺寸内。如果滤波器的期望维度(即,目标滤波器维度)超过了从神经处理单元中的任何滤波器可得的维度,则程序员指示神经处理单元使用多个相同的“子滤波器”来提供期望的滤波器维度。如果在此过程中仅选择相同尺寸的子滤波器,则得到的滤波器通常具有超过期望滤波器维度的尺寸。零值或“权重填补”典型地用于在期望的滤波器维度之外的位置的滤波器阵列元素。滤波器被说成“填补的”,并且这导致处理效率低
35.为了进一步示出这一点,图3a

3e示出了在仅能够提供4
×
4、4
×
1、1
×
4或1
×
1滤波器的npu中提供10
×
6滤波器的一些现有技术。在图3a中,期望的或“目标”滤波器具有表示目标滤波器的列数的目标x维参数x
t
和表示目标滤波器的行数的目标y维参数y
t
。目标滤波器的尺寸由x维参数x
t
和y维参数y
t
的乘积定义。因此,所示的目标滤波器具有维度10
×
6和60的尺寸。在图3a

3e的示例中,特定神经处理单元仅提供具有以下维度的滤波器(被称为“子滤波器”):4
×
4、4
×
1、1
×
4或1
×
1。使用现有技术,神经处理单元的用户可提供如图3b所示的滤波器,即,以使用各自具有维度1
×
1的60个子滤波器。这样将恰好提供期望的目标滤波器维度,但将相当缓慢,这是因为在硬件支持多达4
×
4滤波器元素时一次仅处理单个1
×
1滤波器以及协调在处理来自60个单独子滤波器的结果时涉及的数据移动的效率低。可选地,用户可通过各自具有4
×
4的维度的六个子滤波器来提供目标滤波器。由于仅使用六个子滤波器,因此这涉及较少的对数据移动的协调。然而,得到的滤波器大于在滤波器的底边缘和右边缘处由阴影“填补”指示的目标维度。典型地,将零值插入滤波器中的这些填补的阴影位置,如上所述,并且该填补区域的计算总和为零,即,其为浪费的计算。图3d和图3e的解决方案还使用多个相同子滤波器并且还包括滤波器填补。滤波器填补可能是不期望的,因为它导致不会影响输出特征图元素的结果并因此根据在每种情况下生成多少填补而在不同程度上浪费处理资源的过多计算。
36.根据本公开,一种在神经处理单元中提供滤波器f的计算机实现的方法包括:
37.‑
接收与滤波器的目标维度x
t
,y
t
相对应的输入;
38.‑
接收与在神经处理单元中可实现的多个子滤波器sf
1..n
中的每一者的子滤波器维度x
1..n’,y
1..n’相对应的输入;
39.‑
将滤波器f定义为多个子滤波器sf
1..n
的组合,该组合具有等同于目标维度x
t
,y
t
的维度,并且其中该组合中的子滤波器中的至少两者的子滤波器维度x
1..n’,y
1..n’不相等。
40.如下面更详细地描述,该方法可用于在诸如参考图2描述的神经处理单元中提供滤波器。该方法可用于提供神经网络层(诸如卷积层)的滤波器。该方法还可用于在其他类型的神经网络(诸如rnn)中提供滤波器。有利地,所公开的滤波器的实施方案准许神经处理单元中的处理能力的更高效使用,因为其子滤波器等同于目标滤波器的尺寸。因此,可避免滤波器填补和由填补元素对输入特征图的不必要处理。此外,消除了对缓存与权重填补相
对应的区域中的特征图内容的需要。
41.在一个示例实现方式中,该方法可由处理器执行,所述处理器控制神经处理单元中的多个并行处理器的操作。参考图2,该方法可基本上由同步单元执行。可选地,该方法可由神经处理单元中的另一个处理器执行,或者实际上在图2的神经处理单元中的其他地方执行。该方法的其他方面也可在图2的神经处理单元内的其他地方执行。可选地,该方法可由通用处理器执行,其中该方法定义了随后在可能单独的神经处理单元中实现的滤波器的子滤波器。
42.图4a

4h示出了根据本公开的一些方面的在神经处理单元中提供滤波器f的方法的实施方案。在图4a中,期望的或目标滤波器被示为具有表示目标滤波器的列数的目标x维参数x
t
和表示目标滤波器的行数的目标y维参数y
t
。所示的目标滤波器具有维度10
×
6和60的尺寸。在图4a

4h的示例中,特定神经处理单元仅提供具有以下子滤波器维度x
1..n
’×
y
1..n’的n个滤波器(被称为“子滤波器”):4
×
4、4
×
1、1
×
4、2
×
2和1
×
1,如图4h所示。因此,每个子滤波器的维度包括表示子滤波器的列数的x维参数x
1..n’和表示子滤波器的行数的y维参数y
1..n’。每个子滤波器的尺寸也可由x维参数x
1..n’和相应的y维参数y
1..n’的乘积定义。
43.参考图4b,提供具有等同于目标滤波器的那些维度x
t
,y
t
的维度的滤波器f的一种技术包括单个4
×
4子滤波器和各自具有维度1
×
1的四十四个子滤波器。应注意,组合中的子滤波器中的两者的子滤波器维度x
1..n’,y
1..n’不相等。这可有助于恰好提供期望的目标滤波器维度,并且此外,与使用60个尺寸为1
×
1的单个子滤波器相比,减少了通过子滤波器将单独的卷积的结果进行组合的处理开销。图4c至图4g示出了用于提供具有等同于目标滤波器的那些维度x
t
,y
t
并且同样地受到以下约束的滤波器f的替代技术:组合中的子滤波器中的至少两者的子滤波器维度x
1..n’,y
1..n’不相等。
44.图5示出了根据本公开的一些方面的在神经处理单元中提供滤波器f的方法的流程图。参考图5,该方法包括接收与滤波器的目标维度x
t
,y
t
相对应的输入的步骤。可例如从存储器接收目标维度。存储器可在神经处理单元内。可选地,可以用户输入的形式接收目标维度。例如,这些可由程序员在npu的设置阶段期间输入。该方法还包括以下步骤:接收与在神经处理单元中可实现的多个子滤波器sf
1..n
中的每一者的子滤波器维度x
1..n’,y
1..n’相对应的输入。可从存储器接收子滤波器维度x
1..n’,y
1..n’。例如,它们可存储在存储npu配置数据并形成npu的一部分的存储器中。随后,将滤波器f定义为多个子滤波器sf
1..n
的组合,该组合具有等同于目标维度x
t
,y
t
的维度,并且其中该组合中的子滤波器中的至少两者的子滤波器维度x
1..n’,y
1..n’不相等。在一些实现方式中,可通过在组合中包括连续的滤波器来迭代地执行此步骤,直到定义完整的滤波器为止,如图5中的循环所指示。
45.可以各种方式选择组合地定义图5中的目标滤波器维度x
t
,y
t
的子滤波器。矩形细分的一般问题是np完全,并且因此在计算上有挑战性。在一些实现方式中,可使用查找表来提供子滤波器的预定选择。预定选择可能已经基于滤波器的性能特性(诸如从输入特征图生成输出特征图所花费的总时间)进行了优化。对于常用的目标滤波器尺寸,该方法可能是实用的。然而,一般而言,可能需要针对大量不同滤波器尺寸并有时实时地计算滤波器维度。这里,可使用贪婪方法来以有限量的时间提供解决方案。在该方法中,可通过用子滤波器迭代地填充目标滤波器的维度来提供目标滤波器维度,在每次迭代时选择适合剩余空间
的最大可能的子滤波器尺寸。针对矩形细分问题的该贪婪方法具有多项式时间复杂度,这使得我们能够解决一般矩形细分问题的计算难解性。这还造成目标滤波器由较少数量的子滤波器定义,从而有助于降低从多个子滤波器的单独的卷积结果确定输出特征图的处理开销。
46.在该方法中,多个子滤波器sf
1..n
中的每一者的子滤波器维度x
1..n’,y
1..n’包括表示子滤波器的列数的x维参数x
1..n’和表示子滤波器的行数的y维参数y
1..n’。每个子滤波器的尺寸由x维参数x
1..n’和相应的y维参数y
1..n’的乘积定义。这里,将滤波器定义为多个子滤波器sf
1..n
的组合包括将子滤波器sf
1..n
相继地包括在组合中直到滤波器f的目标维度x
t
,y
t
被组合填充而没有剩余空间为止,每个包括的子滤波器具有适合剩余空间的最大可能的子滤波器尺寸。
47.在包括具有适合剩余空间的最大可能的子滤波器尺寸的子滤波器的以上方法中,如果多于一个子滤波器满足该标准,则可任选地选择具有形状最接近正方形的维度的子滤波器。这有助于最小化在滤波器f中使用的子滤波器的总数,并且因此减少由子滤波器将单独的卷积的结果组合的处理开销。例如,4
×
1子滤波器和2
×
2子滤波器具有相同子滤波器尺寸,并且如果两个子滤波器都满足作为适合剩余空间的最大子滤波器尺寸的标准,则选择2
×
2子滤波器,因为其维度的形状是正方形。在另一个示例中,4
×
4子滤波器、2
×
8子滤波器和1
×
16子滤波器都具有相同尺寸,并且如果所有三个子滤波器都满足作为适合剩余空间的最大子滤波器尺寸的标准,则选择4
×
4子滤波器,因为其维度的形状是正方形。这可概括如下:将滤波器定义为多个子滤波器sf
1..n
的组合可包括将子滤波器sf
1..n
相继地包括在组合中直到滤波器f的目标维度x
t
,y
t
被组合填充而没有剩余空间为止,每个包括的子滤波器具有适合剩余空间的最大可能的子滤波器尺寸,并且如果具有相同子滤波器尺寸的多个子滤波器适合剩余空间,则从具有相同子滤波器尺寸的多个中选择具有的最低值的子滤波器。
48.在一些实施方案中,可任选地按行优先顺序填充目标滤波器的维度。在这些实施方案中,以上将子滤波器sf
1..n
相继地包括在组合中直到滤波器f的目标维度x
t
,y
t
被组合填充而没有剩余空间为止的步骤包括通过针对滤波器f的多组行中的每一者进行以下操作来按行优先顺序填充滤波器的目标维度x
t
,y
t

49.‑
为该组行选择初始子滤波器sfo1,该初始子滤波器sfo1具有适合剩余空间的最大可能的子滤波器尺寸;
50.‑
将子滤波器维度内的一组行定义为具有与初始子滤波器sfo1相同的y维参数y
1..n’的一组行;
51.‑
相继地包括子滤波器sf
1..n
以填充该组行直到该组行中没有剩余空间为止,每个包括的子滤波器具有适合该组行中的剩余空间的最大可能的子滤波器尺寸。
52.这参考图4c进行说明。这里,示例目标滤波器的10
×
6维度用具有维度4
×
4的初始子滤波器sfo1填充;这是来自适合10
×
6阵列的图4h中可用的那些子滤波器中的最大子滤波器。在图4a

4h中不可用具有维度8
×
2的相同尺寸子滤波器,但如果可用的话,将仍优选地选择4
×
4子滤波器,因为如上所述,其维度的形状更接近正方形。因此,在为该组行选择初始子滤波器sfo1,该初始子滤波器sfo1具有适合剩余空间的最大可能的子滤波器尺寸时,这还可任选地包括:如果具有相同子滤波器尺寸的多个子滤波器适合剩余空间,则从具有
相同子滤波器尺寸的多个中选择具有的最低值的子滤波器。图4c中的子滤波器sfo1具有4行,并且然后在填充下一组行之前填充该组的4行中的剩余空间。在填充该组的4行中的剩余空间时,同样优选具有适合该组行中的剩余空间的最大可能的子滤波器尺寸的子滤波器。另一任选的选择标准是包括的子滤波器具有与初始子滤波器sfo1相同的y维参数y
1..n’。因此,相继地包括子滤波器sf
1..n
以填充该组行直到该组行中没有剩余空间为止,每个包括的子滤波器具有适合该组行中的剩余空间的最大可能的子滤波器尺寸,还可任选地包括:如果具有相同子滤波器尺寸的多个子滤波器适合剩余空间,则包括具有与初始子滤波器sfo1相同的y维参数y
1..n’的子滤波器。通过维持与初始子滤波器sfo1相同的y维参数y
1..n’,避免了行的分割,从而简化数据选择和移动。4
×
4子滤波器是适合该组的4行中的剩余空间的最大子滤波器,并且因此将第二4
×
4子滤波器包括在组合中。此外,该子滤波器有利地具有y维参数4,该y维参数与初始子滤波器sfo1的y维参数相同。该组的4行上的剩余空间具有维度2
×
4,并且这里包括1
×
4子滤波器,因为首先它是适合该组的4行上的剩余空间的最大子滤波器,并且其次因为它具有y维参数4,该y维参数与初始子滤波器sfo1的y维参数相同。1
×
4子滤波器具有与2
×
2子滤波器相同的尺寸,并且因此,反而可能已经包括2
×
2子滤波器,如图4g所示,然而这将不如1
×
4理想,因为它导致行的分割。最后,用另一个1
×
4子滤波器填充图4c中的行中的剩余空间(或可选地,并且不太理想地,包括2
×
2子滤波器的两个步骤,如图4g所示)。接下来,图4c中的目标滤波器中的剩余空间具有维度10
×
2。适合该空间的最大子滤波器是4
×
1子滤波器(图4c)或2
×
2子滤波器(图4g)。4
×
1子滤波器是优选的,因为它具有初始子滤波器sfo1的相同x维参数;具体地4,并且这有助于避免列的分割,从而简化数据选择和移动。因此,为该组行选择初始子滤波器sfo1,该初始子滤波器sfo1具有适合剩余空间的最大可能的子滤波器尺寸,可任选地包括:如果具有相同子滤波器尺寸的多个子滤波器适合剩余空间,则包括具有与先前组的行的初始子滤波器sfo1相同的x维参数x
1..n’的子滤波器作为以下操作的替代方案:如果具有相同子滤波器尺寸的多个子滤波器适合剩余空间,则从具有相同子滤波器尺寸的多个中选择具有的最低值的子滤波器。现在用受到以下约束的另外的滤波器填充由用于该组行(图4c中为1行,图4g中为2行)的该初始子滤波器定义的该组行的剩余部分:在每一步骤处选择最大滤波器尺寸。在填充该组行中的剩余空间时,在每一步骤处同样优选具有适合该组行中的剩余空间的最大可能的子滤波器尺寸的子滤波器。因此,在图4c,子滤波器4
×
1和1
×
1具有与定义该组的1行的初始子滤波器sfo1相同的y维参数1。在该行的末尾使用两个1
×
1子滤波器,因为这些是适合该组行的最大子滤波器,并且2
×
1子滤波器不可用。在图4c中,以相同方式填充最后一组的1行。这样做就将目标滤波器的维度填充在各组行中,每组行以最大尺寸的子滤波器开始;即,由子滤波器的行和子滤波器的列的乘积决定,该最大尺寸的子滤波器适合剩余空间,并且用最大可能的子滤波器填充由每一行中的初始滤波器定义的每一组行中的空间。通过在选择初始子滤波器sfo1时以及还在相继地包括子滤波器sf
1..n
以填充该组行时选择适合剩余空间的最大可能的子滤波器尺寸,该实现方式还得益于能够以有限量的时间内提供解决方案。
53.在一些实施方案中,代替按行优先顺序填充目标滤波器的维度,可反而按列优先顺序填充目标滤波器的维度。在这些实施方案中,以上将子滤波器sf
1..n
相继地包括在组合
中直到滤波器f的目标维度x
t
,y
t
被组合填充而没有剩余空间为止的步骤包括通过针对滤波器f的多组列中的每一者进行以下操作来按列优先顺序填充滤波器的目标维度x
t
,y
t

54.‑
为该组列选择初始子滤波器sfo1,该初始子滤波器sfo1具有适合剩余空间的最大可能的子滤波器尺寸;
55.‑
将子滤波器维度内的一组列定义为具有与初始子滤波器sfo1相同的x维参数x
1..n’的一组列;
56.‑
相继地包括子滤波器sf
1..n
以填充该组列直到该组列中没有剩余空间为止,每个包括的子滤波器具有适合该组列中的剩余空间的最大可能的子滤波器尺寸。
57.与行优先顺序选择一样,通过在选择初始子滤波器sfo1时以及还在相继地包括子滤波器sf
1..n
以填充该组列时选择适合剩余空间的最大可能的子滤波器尺寸,该实现方式还得益于能够在有限量的时间内提供解决方案。以与行优先顺序选择类似的方式,当为该组列选择初始子滤波器sfo1,该初始子滤波器sfo1具有适合剩余空间的最大可能的子滤波器尺寸时,还可任选地包括:如果具有相同子滤波器尺寸的多个子滤波器适合剩余空间,则从具有相同子滤波器尺寸的多个中包括选择的最低值的子滤波器。另一任选的选择标准是包括的子滤波器具有与初始子滤波器sfo1相同的x维参数x
1..n’。因此,相继地包括子滤波器sf
1..n
以填充该组列直到该组列中没有剩余空间为止,每个包括的子滤波器具有适合该组列中的剩余空间的最大可能的子滤波器尺寸,还可任选地包括:如果具有相同子滤波器尺寸的多个子滤波器适合剩余空间,则包括具有与初始子滤波器sfo1相同的x维参数x
1..n’的子滤波器。另一任选的标准是,当为该组列选择初始子滤波器sfo1,该初始子滤波器sfo1具有适合剩余空间的最大可能的子滤波器尺寸时可任选地包括:如果具有相同子滤波器尺寸的多个子滤波器适合剩余空间,则包括具有与先前组的列的初始子滤波器sfo1相同的y维参数y
1..n’的子滤波器,作为以下操作的替代方案:如果具有相同子滤波器尺寸的多个子滤波器适合剩余空间,则从具有相同子滤波器尺寸的多个中包括选择的最低值的子滤波器。
58.在一些实施方案中,定义的滤波器包括具有最大x维参数x
1..n
'或最大y维参数y
1..n
'或最大尺寸的子滤波器。在这些实施方案中,目标滤波器的目标维度x
t
,y
t
包括表示滤波器f的列数的目标x维参数x
t
和表示滤波器f的行数的目标y维参数y
t
;并且其中多个子滤波器sf
1..n
中的每一者的子滤波器维度x
1..n’,y
1..n’包括表示子滤波器的列数的对应x维参数x
1..n’和表示子滤波器的列数的对应y维参数y
1..n’。此外,组合包括至少一个子滤波器sf
1..n
,该至少一个子滤波器具有:
59.‑
最大x维参数x
1..n’,或者
60.‑
最大y维参数y
1..n’,或者
61.‑
最大尺寸,该尺寸由x维参数x
1..n’和y维参数y
1..n’的乘积定义;
62.该至少一个子滤波器适合滤波器f的目标维度x
t
,y
t

63.就列而言或者就行或尺寸而言,使用最大子滤波器可提供对可用子滤波器的更佳使用。
64.在一些实施方案中,目标滤波器可被称为“大”目标滤波器,该大目标滤波器在本文中被定义为维度太大而无法由任何单个子滤波器提供的目标滤波器。大目标滤波器可被
定义为如下滤波器:其中目标维度x,y包括目标x维参数x
t
和目标y维参数y
t
;并且其中在神经处理单元中可实现的多个子滤波器sf
1..n
中的每一者的子滤波器维度x
1..n’,y
1..n’包括表示子滤波器的列数的对应x维参数x
1..n’和表示子滤波器的列数的对应y维参数y
1..n’;并且其中:
65.‑
目标x维参数x
t
等于或超过最大可实现的x维参数x’最大
,该最大可实现的x维参数是在神经处理单元中可实现的所述x维参数x
1..n’的最大值;和/或
66.‑
目标y维参数y
t
等于或超过最大可实现的y维参数y’最大
,该最大可实现的y维参数是在神经处理单元中可实现的所述y维参数y
1..n’的最大值。
67.在一些实施方案中,使用最小数量的子滤波器来提供滤波器。可使用优化函数来确定在加起来等同于滤波器f的目标维度x
t
,y
t
的最小数量的子滤波器。该优化可在需要实现滤波器之前执行并例如存储在查找表中,以便在其实现期间节约时间。在这些实施方案中,等同于滤波器f的目标维度x
t
,y
t
的多个子滤波器sf
1..n
的组合与可等同于滤波器f的目标维度x
t
,y
t
的最小数量的子滤波器相对应。
68.扩张滤波器也可使用以上原理来实现。在卷积步骤期间,扩张滤波器对输入特征图稀疏地采样。可通过扩展滤波器并根据扩张率插入零值来实现扩张滤波器。另外,图6a

6d示出了根据本公开的一些方面的扩张滤波器的实现方式。在图6a中,示出了5
×
5滤波器。在图6b中,示出了图6a滤波器的扩张版本,其中扩张率为1。5
×
5滤波器扩张至9
×
9滤波器。在滤波器的阴影区域中使用零权重。因此,图6b的目标滤波器具有维度9
×
9。图6d示出了使用图6c所示的可能的子滤波器的组合来提供扩张目标滤波器的一种示例方法,并且受到以下约束:子滤波器的组合具有等同于目标滤波器维度的维度,并且组合中的子滤波器中的至少两者的子滤波器维度x
1..n’,y
1..n’不相等。因此,这里,滤波器f包括扩张滤波器;并且由多个子滤波器sf
1..n
的组合提供的目标维度x
t
,y
t
与扩张滤波器的维度相对应。
69.在已经定义了滤波器之后,可将其用于神经网络。在一个实现方式中,在cnn中使用滤波器来对输入特征图进行卷积。另外,图7示出了根据本公开的一些方面的在cnn中使用滤波器的流程图。继续图5的方法,图7的方法还包括:
70.‑
接收输入特征图ifm;以及
71.‑
将输入特征图ifm与定义的滤波器f卷积,以提供输出特征图ofm。
72.卷积可用任何适当的步幅来执行;即,可用一或二或更多的步幅来执行。
73.更详细地,当使用本公开的子滤波器时,并且如图7所示,将输入特征图ifm与定义的滤波器f卷积的步骤包括:将输入特征图ifm与组合中的处于其相应位置的多个子滤波器sf
1..n
中的每一者卷积以提供多个对应的部分特征图,并且对部分特征图进行求和以提供输出特征图ofm。
74.作为卷积的一部分,可填补输入特征图ifm,以便提供具有与输入特征图相同的维度的输出特征图。换句话说,它可能具有“相同的填补”。因此,将输入特征图ifm与定义的滤波器f卷积的步骤可包括:填补输入特征图ifm,使得输出特征图ofm具有与输入特征图ifm相同的维度。
75.可选地,输入特征图ifm可不包括任何填补;即,它可能具有“有效的填补”。
76.方法的上述实施方案可在非暂时性计算机可读存储介质上提供,该非暂时性计算机可读存储介质包括存储在其上的计算机可读指令集,该计算机可读指令集在被至少一个
处理器执行时致使至少一个处理器执行该方法。
77.方法的上述实施方案也可被实现为计算机程序产品。可通过专用硬件或能够联合适当的软件运行软件的硬件来提供计算机程序产品。当由处理器提供时,这些功能可由单个专用处理器、单个共享处理器或处理器中的一些可共享的多个单独的处理器提供。此外,术语“处理器”或“控制器”的明确使用不应解释为专门是指能够运行软件的硬件,而是可隐含地包括但不限于数字信号处理器“dsp”硬件、用于存储硬件的只读存储器“rom”、随机存取存储器“ram”、非易失性存储装置等。此外,实施方案可采取可从计算机可用存储介质或计算机可读存储介质访问的计算机程序产品的形式,该计算机程序产品提供程序代码以供计算机或任何指令执行系统使用或结合计算机或任何指令执行系统使用。出于本描述目的,计算机可用存储介质或计算机可读存储介质可为可包括、存储、传达、传播或传送程序以供指令执行系统、设备或装置使用或结合指令执行系统、设备或装置使用的任何设备。介质可为电子、磁性、光学、电磁、红外或半导体系统或装置或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器“ram”、只读存储器“rom”、硬磁盘和光盘。光盘的当前示例包括压缩盘只读存储器“cd

rom”、光盘读/写“cd

r/w”、blu

ray
tm
和dvd。
78.在一些实施方案中,提供了一种用于执行该方法的系统。另外,图8示出了包括处理器proc和存储器mem的系统sy。系统sy包括至少一个处理器proc;以及至少一个存储器mem。存储器包括指令,该指令在至少一个处理器上执行时致使处理器通过以下操作提供神经处理单元的滤波器f:
79.‑
接收与滤波器f的目标维度x
t
,y
t
相对应的输入;
80.‑
接收与在神经处理单元中可实现的多个子滤波器sf
1..n
中的每一者的子滤波器维度x
1..n’,y
1..n’相对应的输入;
81.‑
将滤波器定义为多个子滤波器sf
1..n
的组合,该组合具有等同于目标维度x
t
,y
t
的维度,并且其中该组合中的子滤波器中的至少两者的子滤波器维度x
1..n’,y
1..n’不相等。
82.系统可例如为处理器或神经处理单元。神经处理单元可与图2中示出的神经处理单元的元件相对应。在一些实施方案中,系统的处理器还可被配置为:
83.‑
接收输入特征图ifm;以及
84.‑
通过将输入特征图ifm与定义的滤波器f卷积来使用定义的滤波器f从输入特征图ifm生成输出特征图ofm。
85.上述实施方案应被理解为本公开的说明性示例。设想了其他实施方案。例如,关于方法描述的实施方案也可在计算机程序产品、计算机可读存储介质或系统中实现。应理解,关于任一个实施方案描述的特征都可单独地使用,或者结合描述的其他特征使用,并且还可结合实施方案中的另一者或其他实施方案的组合的一个或多个特征使用。此外,在不脱离在所附权利要求书中定义的本公开的范围的情况下,还可采用上面未描述的等效物和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1