一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于性能优化的分布式深度学习的系统感知选择性量化的制作方法

2022-03-19 16:16:36 来源:中国专利 TAG:

用于性能优化的分布式深度学习的系统感知选择性量化


背景技术:

1.本发明涉及电气、电子和计算机领域,更具体地,涉及诸如神经网络的机器学习结构。
2.神经网络是机器学习训练或分类算法的执行模型。通常,该模型的计算操作在被配置为一起工作的多个处理器上执行。
3.在神经网络中,处理器模拟数千或数百万个神经元,这些神经元通过轴突和突触连接。每个连接都是强制、抑制或中立于其对连接的神经单元的激活状态的影响。每个单独的神经单元具有求和函数,该求和函数将其输入中的每一个乘以相应的权重,然后将经加权的值进行合计以获得总信号。在一些实现中,在至少一些连接上和/或在至少一些神经单元上存在阈值函数或限制函数,使得在受限神经单元将激活之前总信号必须超过限制。一旦神经单元被激活,它就将激活信号作为输入发送到一个或多个其他神经单元。神经网络可以实现监督的、无监督的或半监督的机器学习。
4.深度神经网络(dnn)的典型输出是将输入标记为属于若干类别之一。通常,标记输出基于从输入和标记的训练集习得的模式。dnn使用非常大的模型以高计算复杂性实现应用的较高准确性,所述非常大的模型需要100s兆字节(mb)的数据存储及用于数据移动的高带宽。这种高计算复杂度对广泛部署提出了技术挑战,尤其是在资源受限的边缘环境中。
5.尽管有上述内容,已知神经网络在分配标签时会出错,因为由神经网络分配的一些标签与由审查相同输入的人类专家分配的标签不一致。


技术实现要素:

6.本发明的原理提供了用于性能优化的分布式深度学习的系统感知选择性量化的技术。
7.在一个方面,示例性方法包括建立卷积神经网络。所述卷积神经网络包括:前层,其具有第一数量的神经元和第一卷积核;后层,其具有第二数量的神经元和第二卷积核,其中所述第二数量的神经元少于所述第一数量的神经元;以及连接在所述前层和所述后层之间的多个其它层。该方法进一步包括从该多个其他层中选择具有第三数量的神经元和第三卷积核的过渡层;向从所述前层回到所述过渡层的神经元的激活分配第一激活精度,并且向从所述过渡层回到所述后层的神经元的激活分配第二激活精度;以及向从所述前层回到所述过渡层的神经元的输入的权重分配第一权重精度,并且向从所述过渡层回到所述后层的神经元的输入的权重分配第二权重精度。第一激活精度不同于第二激活精度。第一权重精度不同于第二权重精度。过渡层被选择为对应于从激活重层(activation-heavy layers)到权重重层(weight-heavy layers)的过渡。
8.在另一方面,一种示例性方法包括建立卷积神经网络。所述卷积神经网络包括:前层,其具有第一数量的神经元和第一卷积核;后层,其具有第二数量的神经元和第二卷积核,其中所述第二数量的神经元少于所述第一数量的神经元;以及连接在所述前层和所述后层之间的多个其它层。该方法包括从该多个其他层中选择具有第三数量的神经元和第三
卷积核的过渡层;向从所述前层回到所述过渡层的神经元分配第一卷积核;以及向从过渡层回到后层的神经元分配第二卷积核。第一卷积核通过将核窗口中小于最大值的第一固定比例的值减小到零而具有第一压缩。第二卷积核通过将核窗口中小于最大值的第二固定比例的值减小到零而具有第二压缩。第二固定比例小于第一固定比例。过渡层被选择为对应于从激活重层到权重重层的过渡。
9.在又一方面,一种示例性方法包括建立卷积神经网络。所述卷积神经网络包括:前层,其具有第一数量的神经元和第一卷积核;后层,其具有第二数量的神经元和第二卷积核,其中所述第二数量的神经元少于所述第一数量的神经元;以及连接在所述前层和所述后层之间的多个其它层。该方法包括从该多个其他层中选择具有第三数量的神经元和第三卷积核的过渡层;给向从所述前层回到所述过渡层的神经元的激活分配第一激活精度,并且向从所述前层回到所述过渡层的神经元的输入的权重分配第一权重精度;以及向从过渡层回到后层的神经元的激活分配第二激活精度,并且从过渡层回到后层的神经元的输入的权重分配第二权重精度。第一激活精度小于第一权重精度。第二激活精度大于第二权重精度。过渡层被选择为对应于从激活重层到权重重层的过渡。
10.本发明的一个或多个实施例或其元件可以以计算机程序产品的形式实现,该计算机程序产品包括具有用于执行或促进所指示的方法步骤的计算机可用程序代码的计算机可读存储介质。此外,本发明的一个或多个实施例或其元素可以以系统(或装置)的形式实现,该系统(或装置)包括存储器和至少一个处理器,该存储器包含计算机可执行指令,该至少一个处理器耦合到存储器并可由指令操作以执行或促进示例性方法步骤。此外,在另一方面,本发明的一个或多个实施例或其元件可以以用于执行本文描述的一个或多个方法步骤的装置的形式来实现;这些装置可以包括:硬件模块,(ii)存储在有形计算机可读存储介质(或多个这样的介质)中并在硬件处理器上实现的软件模块,或(iii)(i)和(ii)的组合;(i)-(iii)中的任何一个实现本文阐述的特定技术。
11.如本文所使用的,“促进”动作包括执行动作、使动作更容易、帮助执行动作、或使得动作被执行。因此,作为示例而非限制,在一个处理器上执行的指令可以通过发送适当的数据或命令以促使或帮助要执行的动作来促进由在远程处理器上执行的指令所执行的动作。为了避免疑惑,在行动者通过执行动作之外的动作来促进动作的情况下,该动作仍然由某个实体或实体的组合来执行。
12.鉴于上述情况,本发明的技术可以提供实质上有益的技术效果。例如,一个或多个实施例提供以下中的一个或多个:在保持模型精度的同时减少神经网络的存储器占用(和带宽要求)。提高卷积神经网络的计算吞吐量,而不降低分类精度。提高卷积神经网络的分类精度,而不增加计算资源负荷。响应于执行神经网络的系统的硬件约束来优化所述神经网络中的激活和权重的量化。
13.通过结合附图阅读的本发明的说明性实施例的以下详细描述,本发明的这些和其它特征和优点将变得显而易见。
附图说明
14.图1示意性地描绘了示例性卷积神经网络;
15.图2在表中描绘了可以通过本发明的各方面改进的处理引擎利用率百分比;
16.图3以曲线图的形式描绘了根据本发明的示例性实施例优化的卷积神经网络的预测准确度;
17.图4示意性地描绘了根据示例性实施例的用于选择卷积神经网络中的过渡层的位置的方法;
18.图5以流程图的形式描绘了根据示例性实施例的用于优化卷积神经网络的方法;
19.图6以流程图的形式描绘了根据示例性实施例的用于优化卷积神经网络的另一方法;以及
20.图7描绘了可用于实现本发明的一个或多个方面和/或元素的计算机系统。
具体实施方式
21.图1描绘了示例性卷积神经网络(cnn)100。cnn 100接收输入矩阵102(通常是像素值矩阵,其可以是任何维度的)并且产生分类标签104。cnn 100包括前层106,其是接收输入矩阵102的卷积层。cnn 100还包括产生分类标签104的分类层(完全连接层)108。在前层106与分类层108之间是多个其它卷积层,包括后层110和过渡层。后层110是最接近全连接层108的层,并且具有最少数量的神经单元,每个神经单元被调谐以识别输入矩阵102的高级特征。过渡层连接在前层106和后层110之间的层中的某处。
22.cnn是一种深度神经网络(dnn)。dnn使用需要100s兆字节(mb)的数据存储且需要高带宽以用于数据移动的非常大的模型来实现具有高计算复杂性的应用的较高准确度。这种模型的复杂性对广泛部署提出了巨大的挑战,尤其是在资源受限的边缘环境中。一个或多个实施例提供了一种方法和装置,以在尽可能多地保持模型精度的同时减少存储器占用(和带宽要求)。
23.在cnn 100的操作中,每个卷积层的每个神经元从选自前一层的神经元中扫描激活,向所选择的选神经元分配权重,并且基于从所选择的神经元接收的加权激活之和来输出激活。在全连接层108中,来自前一层的每个神经元连接到该层的每个神经元。通常,使用全连接层的输出激活来产生分类标签104。
24.为每个神经元生成激活是计算密集的,并且计算工作负荷随着激活的精度的增加而增加。通常,较高精度激活(更接近模拟)导致更准确的分类,尽管存在神经网络结构限制来自较高精度之精度增益的点。可以通过降低所选择的权重或激活的精度来增强计算性能(减少工作负荷)。本发明的各方面涉及如何选择将具有降低的精度(“量化”)的权重和激活。
25.通常,当用更多数据训练cnn时,cnn对于量化更鲁棒(准确度随精度的变化而较少地变化)。例如,提供有一千个训练图像的cnn比提供有仅十二个训练图像的相同cnn更健壮。类似地,提供有4096
×
3072像素的一千个图像的cnn将比提供有512
×
384像素的一千个图像的相同cnn更健壮。因此,本发明的一个方面是发现当存在大量激活要一起工作时(即,在前层106附近的卷积层中,许多神经元提供许多输出),激活的精度可被降低得更多,并且当存在大量权权重一起工作时(即,在后层110附近的卷积层中,较少神经元接收许多输入),权重的精度可被降低得更多。在一个或多个实施例中,过渡层112区分经量化激活(在前层106与过渡层之间)与经量化权重(在过渡层与后层110之间)之间的边界。
26.鉴于上述说明,将理解的是,过渡层的选择对cnn 100的准确性和计算效率都具有
显著影响。图2在表200中描绘了通过选择性地量化不同层的激活、权重或这两者来改进对示例cnn(resnet-18)的示例处理引擎(pe)的利用。第一列示出了在所有层处半精度量化的结果。第二列示出了所有层处的权重的三元(2比特)量化的结果。第三列示出了所有层处的激活的三元量化的结果。第四列示出了所有层处的权重和激活的三元量化的结果。第五列示出了从前层106到过渡层112的激活的三元量化的结果,以及从过渡层112之后到后层110的权重的三元量化的结果。例如,如果权重和激活的精度在所有层处减少一半,则在层conv2_4处的pe利用率是46.0%。如果仅所有层的权重被量化为两比特精度,则pe利用率为46.3%。如果仅将所有层处的激活量化为两比特精度,则pe利用率为87.1%。根据经验,可以通过量化激活来获得在层conv2_4处的计算效率的最大益处。进一步向下,在层conv5_1,量化权重导致79.1%的pe利用率,而量化激活导致仅73.5%的pe利用率。
27.图3在曲线图300中描绘了当图1的卷积神经网络100已经根据示例性实施例进行了优化时它的预测准确度。随着训练步骤的数量从左到右增加,示出了在不同训练时期上的预测精度。在302,准确度对于激活和权重的高精度值是最优的。在304,仅在组3的卷积层中针对两比特量化权重值实现次最佳精度。(注意,曲线图上的组3对应于表200和图1中的conv4_1至conv4_4。)在306,使用组3卷积层中的两比特量化权重值并使用组0-组2卷积层中的两比特量化激活来获得第三最佳精度。(注意,曲线图上的组0对应于表200和图1中的conv1_1,而组2对应于conv3_1至conv3_4)。在308,最不准确的方法是量化所有层中的权重。
28.因此,本发明的一方面是用于选择过渡层112的方法400,直到过渡层112为止对激活进行量化,并且在过渡层112之后对权重进行量化,如图4中的流程图中所描绘的。在401,将硬件系统参数/约束402和神经网络100的描述403馈送到分析性能估计模型404,分析性能估计模型404迭代地改变神经网络描述403以逼近所选择的硬件系统度量的最优值。例如,为了说明的目的,可以选择执行延迟作为感兴趣的度量。诸如吞吐量、功率或能量效率的其它度量也可用作感兴趣的度量。基于系统约束(带宽、片上存储器容量或计算能力),性能估计器针对神经网络的每层的每个数据结构生成预期产生感兴趣度量的最优值的权重和激活精度。例如,性能估计器可以扫描可能的精度配置,并且对于每个精度选择,它检查数据重用和存储器占用,以估计给定系统约束的延迟。因此,在404,方法400推荐神经网络100的哪些层应当是过渡层112。通常,在权重是高精度时,激活在过渡层112之前被量化。然后权重在层112之后被量化,同时激活是高精度的。在层112,在一些实施例中,权重和激活都是高精度的。在其它实施例中,在层112处,权重和激活两者被量化。在一些实施例中,在层112处,在激活为高精度的同时,权重被量化。在其他实施例中,在层112处,在权重为高精度的同时,激活被量化。过渡层中的权重或激活的量化将取决于所估计的性能;例如,如果在该层中权重比激活更占优势,则性能估计器将指示使用更低精度的权重。)
29.在406,使用推荐的量化对训练数据执行神经网络100(神经网络仿真)。作为示例,imagenet数据集(olga russakovsky,jia deng,hao su,jonathan krause,sanjeev satheesh,sean ma,zhiheng huang,andrej karpathy,aditya khosla,michael bernstein,alexander c.berg and li fei-fei.imagenet large scale visual recognition challenge.ijcv,2015)可以用于图像分类任务。在408,确定是否通过对每一层的权重和/或激活的选择性量化来实现期望的分类准确度。作为非限制性示例,在一个实
施例中,良好的准确度是小于3%的误差率;在另一实施例中,良好的准确度是小于2%的误差率。在另一实施例中,可接受准确度是从全精度基线准确度降级不超过1%的误差率。对于任何给定的应用,良好精度的精确值将由技术人员根据经验确定,并且对于本发明的范围不权重。然而,本发明的一方面是确定是否已经实现良好的精度的步骤。如果不是,则调整层112的推荐。
30.一旦已经确认了过渡层112的给定推荐的准确度,则在410,根据描述403,在测试数据上部署神经网络100,其中每一层具有量化的权重和激活。如先前所讨论的,在过渡层112之前,在权重为高精度的同时,激活被量化;在过渡层112之后,在激活具有高精度的同时,权重被量化。在层112处的权重和激活的处理根据各种实施例而变化。
31.图5以流程图的形式描绘了用于优化卷积神经网络的方法500。在502,建立包括前层、后层、以及连接在前层和后层之间的其他层的神经网络。在504,基于确定从激活重层到权重重层的过渡,从多个其他层中选择过渡层。在506,向从前层回到过渡层的神经元的激活分配第一激活精度。在508,向从过渡层回到后层的神经元的激活分配第二激活精度。在510,向从前层回到过渡层的神经元的输入的权重分配第一权重精度,以及在512,向从过渡层回到后层的神经元的输入的权重分配第二权重精度。
32.图6以流程图的形式描述了用于优化卷积神经网络的另一方法600。在602,建立包括前层、后层、以及连接在前层和后层之间的其他层的神经网络。在604,基于确定从激活重层到权重重层的过渡,从多个其他层中选择过渡层。在606,向从前层回到过渡层的层分配第一卷积核。在608,向从过渡层回到后层的层分配第二卷积核。第一卷积核通过将核窗口中小于最大值的第一固定比例的值减小到零来压缩其输入。第二卷积核通过将核窗口中小于最大值的第二固定比例的值减小到零来压缩其输入。第二固定比例小于第一固定比例。
33.在到此为止的讨论中,将理解,一般而言,根据本发明的一方面,示例性方法500包括在502建立卷积神经网络100。卷积神经网络包括具有第一数量的神经元和第一卷积核的前层106;具有第二数量的神经元和第二卷积核的后层110;以及连接在前层和后层之间的多个其它层。第二数量的神经元少于第一数量的神经元。该方法还包括在504,从多个其他层中选择具有第三数量的神经元和第三卷积核的过渡层112;在506,向从前层回到过渡层的神经元的激活分配第一激活精度;在508,向从过渡层回到后层的神经元的激活分配第二激活精度;在510,向从前层回到过渡层的神经元的输入的权重分配第一权重精度;以及在512,向从过渡层回到后层的神经元的输入的权重分配第二权重精度。第一激活精度不同于第二激活精度。第一权重精度不同于第二权重精度。过渡层被选择为对应于从激活重层到权重重层的过渡。
34.在一个或多个实施例中,第二卷积核和第三卷积核中的至少一个不同于第一卷积核。
35.在一个或多个实施例中,第一激活精度小于第二激活精度。在一个或多个实施例中,第一权重精度大于第二权重精度。在一个或多个实施例中,第一激活精度大于第二权重精度。
36.在一个或多个实施例中,由性能估计器确定过渡。例如,性能估计器迭代地改变对卷积神经网络的描述以逼近所选择的硬件系统度量的最优值。作为另一示例,性能估计器扫描多个可能的精度配置,并且对于每个精度配置,性能估计器检查数据重用和存储器占
用,以便估计给定系统约束的延迟。在一个或多个实施例中,每个精度配置定义对每一个卷积神经网络的层的激活精度和权重精度的分配。
37.在另一方面,示例性方法600包括在602建立卷积神经网络100。卷积神经网络包括具有第一数量的神经元和第一卷积核的前层106;具有第二数量的神经元和第二卷积核的后层110,其中第二数量的神经元少于第一数量的神经元;以及连接在前层和后层之间的多个其它层。该方法包括在604从多个其他层中选择具有第三数量的神经元和第三卷积核的过渡层112;在606,向从前层回到过渡层的神经元分配第一卷积核;以及在608,向从过渡层回到后层的神经元分配第二卷积核。第一卷积核通过将核窗口中小于最大值的第一固定比例的值减小到零而具有第一压缩。第二卷积核通过将核窗口中小于最大值的第二固定比例的值减小到零而具有第二压缩。第二固定比例小于第一固定比例。过渡层被选择为对应于从激活重层到权重重层的过渡。
38.在一个或多个实施例中,第三卷积核可以与第一卷积核相同或者可以与第二卷积核相同。
39.在又一方面,示例性方法500包括在502建立卷积神经网络100。卷积神经网络包括具有第一数量的神经元和第一卷积核的前层106;具有第二数量的神经元和第二卷积核的后层110,其中第二数量的神经元少于第一数量的神经元;以及连接在前层和后层之间的多个其它层。该方法包括在504,从多个其他层中选择具有第三数量的神经元和第三卷积核的过渡层112;在506,向从前层回到过渡层的神经元的激活分配第一激活精度,以及向从前层回到过渡层的神经元的输入的权重分配第一权重精度;以及在508,向从过渡层回到后层的神经元的激活分配第二激活精度,并向从过渡层回到后层的神经元的输入的权重分配第二权重精度。第一激活精度小于第一权重精度。第二激活精度大于第二权重精度。过渡层被选择为对应于从激活重层到权重重层的过渡。
40.本发明的一个或多个实施例或其元素可以以包括存储器和耦合到存储器并且可操作用于执行示例性方法步骤的至少一个处理器的装置的形式实现,或者以包含计算机可执行指令的非暂时性计算机可读介质的形式实现,当计算机可执行指令由计算机执行时,使得计算机执行示例性方法步骤。图7描述了可以用于实现本发明的一个或多个方面和/或元件的计算机系统。
41.在计算机系统10中,存在计算机服务器12,其可与许多其它通用或专用计算系统环境或配置一起操作。适合与计算机服务器12一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
42.计算机服务器12可以在计算机系统可执行指令的一般上下文中描述,诸如由计算机系统执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机服务器12可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
43.如图7所示,计算机系统10中的计算机服务器12以通用计算设备的形式示出。计算机服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28以及
将包括系统存储器28的各种系统组件耦合到处理器16的总线18。
44.总线18表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总线和外围组件互连(pci)总线。
45.计算机服务器12通常包括各种计算机系统可读介质。这样的介质可以是可由计算机服务器12访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
46.系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓冲存储器32。计算机服务器12还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统34可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如cd-rom、dvd-rom或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置成执行本发明的实施例的功能。
47.具有一组(至少一个)程序模块42的程序/实用程序40,以及操作系统、一个或多个应用程序、其它程序模块和程序数据,可作为示例而非限制存储在存储器28中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块42通常执行这里描述的本发明实施例的功能和/或方法。
48.计算机服务器12还可以与一个或多个外部设备14通信,诸如键盘、定点设备、显示器24等;一个或多个设备,其使得用户能够与计算机服务器12交互;和/或任何使计算机服务器12能够与一个或多个其它计算设备通信的设备(例如网卡、调制解调器等)。这种通信可以经由输入/输出(i/o)接口22发生,然而,计算机服务器12可以经由网络适配器20与一个或多个网络通信,所述网络诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,因特网)。如所描绘的,网络适配器20经由总线18与计算机服务器12的其它组件通信,应当理解,尽管未示出,但其它硬件和/或软件组件可结合计算机服务器12使用。示例包括但不限于:微码、设备驱动器、冗余处理单元和外部磁盘驱动器阵列、raid系统、磁带驱动器和数据档案存储系统等。
49.因此,一个或多个实施例可以利用在通用计算机或工作站上运行的软件。参考图7,这样的实现可以采用例如处理器16、存储器28、以及到显示器24和外部设备14(诸如键盘、定点设备等)的输入/输出接口22。本文使用的术语“处理器”旨在包括任何处理设备,例如包括cpu(中央处理单元)和/或其他形式的处理电路的处理设备。此外,术语“处理器”可以指多于一个的单独处理器。术语“存储器”旨在包括与处理器或cpu相关联的存储器,例如ram(随机存取存储器)30、rom(只读存储器)、固定存储器设备(例如,硬盘驱动器34)、可移动存储器设备(例如,磁盘)、闪存等。此外,本文使用的短语“输入/输出接口”旨在预期到例如用于将数据输入到处理单元的一个或多个机构(例如,鼠标)的接口,以及用于提供与处
理单元相关联的结果的一个或多个机构(例如,打印机)。处理器16、存储器28和输入/输出接口22可以例如经由作为数据处理单元12的一部分的总线18互连。适当的互连例如经由总线18也可以提供给网络接口20,例如网卡,其可以被提供以与计算机网络接口,以及提供给介质接口,例如磁盘或cd-rom驱动器,其可以被提供以与适当的介质接口。
50.因此,包括用于执行如本文所描述的本发明的方法的指令或代码的计算机软件可以存储在一个或多个相关联的存储器设备(例如,rom、固定或可移动存储器)中,并且当准备使用时,部分或全部加载(例如,加载到ram中)并由cpu实现。这种软件可以包括但不限于固件、驻留软件、微代码等。
51.适于存储和/或执行程序代码的数据处理系统将包括通过系统总线18直接或间接耦合到存储器元件28的至少一个处理器16。存储器元件可以包括在程序代码的实际实现期间使用的本地存储器、大容量存储器、以及提供至少一些程序代码的临时存储以便减少在实现期间必须从大容量存储器检索代码的次数的高速缓冲存储器32。
52.输入/输出或i/o设备(包括但不限于键盘、显示器、指示设备等)可以直接或通过中间i/o控制器耦合到系统。
53.网络适配器20也可以耦合到系统,以使数据处理系统能够通过中间的专用或公共网络耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是几种当前可用的网络适配器类型。
54.如本文(包括权利要求书)所使用的,“服务器”包括运行服务器程序的物理数据处理系统(例如,如图7所示的系统12)。可以理解,这样的物理服务器可以包括或不包括显示器和键盘。
55.一个或多个实施例可以至少部分地在云或虚拟机环境的上下文中实现,尽管这是示例性的而非限制性的。返回参考图1-图2以及所附文本。
56.应当注意,本文描述的任何方法可以包括提供包括在计算机可读存储介质上实现的不同软件模块的系统的附加步骤;模块可以包括例如在框图中描绘和/或本文描述的适当元件中的任何或全部;作为示例而非限制,描述了模块/块和/或子模块/子块中的任何一个、一些或全部。然后,可以使用如上所述的在一个或多个硬件处理器(例如16)上执行的系统的不同软件模块和/或子模块来执行方法步骤。此外,计算机程序产品可以包括具有代码的计算机可读存储介质,该代码适于被实现以执行本文描述的一个或多个方法步骤,包括向系统提供不同软件模块。
57.示例性系统和制造品细节
58.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
59.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或
凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
60.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
61.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c 等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
62.在本文参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
63.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
64.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
65.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实
际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
66.已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
67.在本文所描述的本发明的优选实施方案中,提供了一种方法,其包括:建立卷积神经网络,所述卷积神经网络包括:前层,其具有第一数量的神经元和第一卷积核;后层,其具有第二数量的神经元和第二卷积核,其中第二数量的神经元少于第一数量的神经元;以及多个其它层,其连接在前层和后层之间;从多个其他层中选择具有第三数量的神经元和第三卷积核的过渡层;向从前层回到过渡层的神经元分配第一卷积核,其中第一卷积核通过将核窗口中小于最大值的第一固定比例的值降低到零而具有第一压缩;以及向从过渡层回到后层的神经元分配第二卷积核,其中第二卷积核通过将核窗口中小于最大值的第二固定比例的值减小到零而具有第二压缩,其中第二固定比例小于第一固定比例,其中过渡层被选择为对应于从激活重层到权重重层的过渡。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献