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

去卷积的优化的制作方法

2022-02-22 07:37:45 来源:中国专利 TAG:

去卷积的优化
1.公开领域
2.本公开总体涉及去卷积(deconvolution)操作,包括但不限于通过减少点积运算的计算量来提高去卷积的计算效率。
3.背景
4.去卷积能够提高图像分辨率或改善图像的放大(upscale)。在一个实施方式中,基于具有像素集合的输入图像,通过将具有预定值(例如,空数据)的像素填充或添加到输入图像的像素集合来获得比输入图像具有更多数量的像素的中间图像。然后,中间图像可以与核(kernel)卷积,以获得分辨率高于输入图像的放大图像的像素。例如,可以对中间图像的不同子集与核执行点积运算。然而,生成中间图像并将中间图像与核卷积可能涉及大量点积运算,这些点积运算在计算上是穷尽的并且效率低下。
5.概述
6.本文公开的多个实施例涉及一种用于对输入图像执行去卷积的方法。在一些实施例中,该方法包括通过一个或更多个处理器接收具有像素集合的输入图像。在一些实施例中,该方法包括通过一个或更多个处理器对输入图像的像素集合的子集与核的一部分执行第一点积,以生成输出图像的第一像素。关于第一点积执行的乘法的数量可以小于核的元素的数量。在一些实施例中,该方法包括通过一个或更多个处理器绕过对核的剩余部分的第二点积,以生成输出图像的第一像素。
7.在一些实施例中,该方法包括通过一个或更多个处理器根据指示对于输出图像的每个像素要绕过的相对应的点积的映射信息,识别对于输出图像的第一像素要绕过的第二点积。在一些实施例中,该方法包括通过一个或更多个处理器根据映射信息绕过对核的剩余部分的第二点积,以生成输出图像的第一像素。
8.在一些实施例中,该方法包括通过一个或更多个处理器根据指示对于输出图像的每个像素要执行的相对应的点积的映射信息,识别对于输出图像的第一像素要执行的第一点积。在一些实施例中,该方法包括通过一个或更多个处理器根据映射信息,对输入图像的像素集合的子集与核的一部分执行第一点积,以生成输出图像的第一像素。在一些实施例中,输出图像比输入图像具有更多数量的像素。
9.在一些实施例中,该方法包括通过一个或更多个处理器对i)输入图像的像素集合的子集与ii)核的另一部分执行第三点积,以生成输出图像的第二像素。在一些实施例中,为了生成输出图像的第一像素而关于第一点积执行的乘法的数量与为了生成输出图像的第二像素而关于第三点积执行的乘法的数量相同。
10.在一些实施例中,该方法包括通过一个或更多个处理器对i)输入图像的像素集合的另一子集与ii)核的一部分执行第三点积,以生成输出图像的第二像素。在一些实施例中,为了生成输出图像的第一像素而关于第一点积执行的乘法的数量与为了生成输出图像的第二像素而关于第三点积执行的乘法的数量相同。
11.在一些实施例中,该方法包括通过一个或更多个处理器对i)输入图像的像素集合的另一子集与ii)核的另一部分执行第三点积,以生成输出图像的第二像素。在一些实施例
中,为了生成输出图像的第一像素而关于第一点积执行的乘法的数量不同于为了生成输出图像的第二像素而关于第三点积执行的乘法的数量。
12.本文公开的多个实施例涉及用于对输入图像执行去卷积的系统。在一些实施例中,该系统包括一个或更多个处理器,该一个或更多个处理器被配置为接收具有像素集合的输入图像,并且对输入图像的像素集合的子集与核的一部分执行第一点积,以生成输出图像的第一像素。关于第一点积执行的乘法的数量可以小于核的元素的数量。在一些实施例中,一个或更多个处理器被配置为绕过对核的剩余部分的第二点积,以生成输出图像的第一像素。
13.在一些实施例中,一个或更多个处理器被配置为根据指示对于输出图像的每个像素要绕过的相对应的点积的映射信息,识别对于输出图像的第一像素要绕过的第二点积。在一些实施例中,一个或更多个处理器被配置为根据映射信息绕过对核的剩余部分的第二点积,以生成输出图像的第一像素。
14.在一些实施例中,一个或更多个处理器被配置为根据指示对于输出图像的每个像素要执行的相对应的点积的映射信息,识别对于输出图像的第一像素要执行的第一点积。在一些实施例中,一个或更多个处理器被配置为根据映射信息对输入图像的像素集合的子集与核的一部分执行第一点积,以生成输出图像的第一像素。在一些实施例中,输出图像比输入图像具有更多数量的像素。
15.在一些实施例中,一个或更多个处理器被配置为对i)输入图像的像素集合的子集与ii)核的另一部分执行第三点积,以生成输出图像的第二像素。在一些实施例中,为了生成输出图像的第一像素而关于第一点积执行的乘法的数量与为了生成输出图像的第二像素而关于第三点积执行的乘法的数量相同。
16.在一些实施例中,一个或更多个处理器被配置为对i)输入图像的像素集合的另一子集与ii)核的一部分执行第三点积,以生成输出图像的第二像素。在一些实施例中,为了生成输出图像的第一像素而关于第一点积执行的乘法的数量与为了生成输出图像的第二像素而关于第三点积执行的乘法的数量相同。
17.在一些实施例中,一个或更多个处理器被配置为对i)输入图像的像素集合的另一子集与ii)核的另一部分执行第三点积,以生成输出图像的第二像素。在一些实施例中,为了生成输出图像的第一像素而关于第一点积执行的乘法的数量不同于为了生成输出图像的第二像素而关于第三点积执行的乘法的数量。
18.下面详细讨论这些和其他方面和实施方式。前述信息和以下详细描述包括多个方面和实施方式的说明性示例,并且提供了用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。应当理解的是,本文中描述的适于结合到本发明的一个或更多个方面或实施例中的任何特征都旨在可推广到本公开的任何和所有方面和实施例。附图提供了对多个方面和实施方式的说明和进一步理解,并且被结合在本说明书中并构成本说明书的一部分。
19.附图简述
20.附图不意在按比例绘制。不同附图中相似的附图标记和名称表示相似的元素。为了清楚起见,并非每个组件都可能在每个图中被标记。
21.图1a是根据本公开的示例实施方式的用于执行人工智能(ai)相关处理的系统的
实施例的框图。
22.图1b是根据本公开的示例实施方式的用于执行ai相关处理的设备的实施例的框图。
23.图1c是根据本公开的示例实施方式的用于执行ai相关处理的设备的实施例的框图。
24.图1d是根据本公开的示例实施方式的计算环境的框图。
25.图2是根据本公开的示例实施方式的放大器(upscaler)的框图。
26.图3示出了根据本公开的示例实施方式的示例输入图像、中间图像和放大图像,以示出放大过程。
27.图4a至图4d示出了根据本公开的示例实施方式,为获得放大图像的像素而执行的示例点积。
28.图5是示出了根据本公开的示例实施方式的放大图像的过程的流程图。
29.详细描述
30.在转向详细示出某些实施例的附图之前,应当理解的是,本公开不限于说明书中阐述的或附图中示出的细节或方法。还应该理解,本文使用的术语仅仅是为了描述的目的,而不应该被认为是限制性的。
31.为了阅读下文对本发明的多个实施例的描述,对说明书各部分及其各自内容的以下描述可能是有帮助的:
[0032]-a部分描述了对实践或实现本系统、方法和设备的实施例有用的环境、系统、配置和/或其他方面;以及
[0033]-b部分描述了用于通过减少点积运算的计算量来执行有效去卷积的设备、系统和方法的实施例。
[0034]
a.人工智能相关处理的环境
[0035]
在讨论b部分中的系统、设备和/或方法的实施例的具体内容之前,讨论对实践或实现系统、设备和/或方法的某些实施例有用的环境、系统、配置和/或其他方面可能是有帮助的。现在参考图1a,描绘了用于执行人工智能(ai)相关处理的系统的实施例。简而言之,该系统包括一个或更多个ai加速器108,该一个或更多个ai加速器108可以使用输入数据110来执行ai相关处理。尽管被称为ai加速器108,但它有时也被称为神经网络加速器(nna)、神经网络芯片或硬件、ai处理器、ai芯片等。ai加速器108可以根据输入数据110和/或参数128(例如,权重和/或偏置信息)执行ai相关处理,以输出或提供输出数据112。ai加速器108可以包括和/或实现一个或更多个神经网络114(例如,人工神经网络)、一个或更多个处理器24和/或一个或更多个存储设备126。
[0036]
上述元件或组件中的每一个都以硬件或硬件和软件的组合来实现。例如,这些元件或组件中的每一个可以包括在硬件上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令,该硬件诸如是可以包括数字和/或模拟元件(例如,一个或更多个晶体管、逻辑门、寄存器、存储器设备、电阻元件、导电元件、电容元件)的电路。
[0037]
输入数据110可以包括用于配置、调节、训练和/或激活ai加速器108的神经网络114和/或用于由处理器124处理的任何类型或形式的数据。神经网络114有时被称为人工神经网络(ann)。配置、调节和/或训练神经网络可以指或包括机器学习的过程,其中诸如历史
数据的训练数据集(例如,作为输入数据110)被提供给神经网络进行处理。调节或配置可以指或包括对神经网络114的训练或处理,以允许神经网络提高准确度。例如,调节或配置神经网络114可以包括使用已被证明对于神经网络114所期望的问题或目标类型是成功的架构来设计、形成、构建、合成和/或建立神经网络。在一些情况下,一个或更多个神经网络114可以在相同或相似的基线模型处启动,但是在调节、训练或学习过程期间,神经网络114的结果可以明显不同,从而每个神经网络114可以被调节以处理特定类型的输入,并且与处于基线模型或者针对不同目标或目的调节或训练的不同神经网络相比,以更高水平的准确度和可靠性生成特定类型的输出。调节神经网络114可以包括为每个神经网络114设置不同的参数128,为每个神经网络114不同地微调参数128,或者分配不同的权重(例如,超参数或学习速率)、张量流(tensor flows)等。因此,基于调节或训练过程以及神经网络和/或系统的目标,为神经网络114设置适当的参数128,可以提高整个系统的性能。
[0038]
ai加速器108的神经网络114可以包括任何类型的神经网络,包括例如卷积神经网络(cnn)、深度卷积网络、前馈神经网络(例如,多层感知器(mlp))、深度前馈神经网络、径向基函数神经网络、kohonen自组织神经网络、循环神经网络、模块化神经网络、长/短期记忆神经网络等。神经网络114可以被部署或用于执行数据(例如,图像、音频、视频)处理、对象或特征识别、推荐功能、数据或图像分类、数据(例如,图像)分析等,诸如自然语言处理。
[0039]
作为示例,在一个或更多个实施例中,神经网络114可以被配置为或包括卷积神经网络。卷积神经网络可以包括一个或更多个卷积单元(或池化层)和核,每个都可以服务于不同的目的。卷积神经网络可以包括、包含和/或使用卷积核(有时简称为“核”)。卷积核可以处理输入数据,以及池化层可以使用例如非线性函数(诸如max)来简化数据,从而减少不必要的特征。包括卷积神经网络的神经网络114可以促进图像、音频或任何数据识别或其他处理。例如,(例如,来自传感器的)输入数据110可以被传递到卷积神经网络的卷积层,该卷积层形成漏斗(funnel),压缩输入数据110中检测到的特征。卷积神经网络的第一层可以检测第一特征,第二层可以检测第二特征,以此类推。
[0040]
卷积神经网络可以是一种深度前馈人工神经网络,其被配置为分析视觉影像(imagery)、音频信息和/或任何其他类型或形式的输入数据110。卷积神经网络可以包括被设计为使用最少预处理的多层感知器。卷积神经网络基于其共享权重架构和平移不变性(translation invariance)的特征可以包括或被称为移位不变或空间不变的人工神经网络。由于与其他数据分类/处理算法相比,卷积神经网络可以使用相对较少的预处理,因此卷积神经网络可以自动学习可能为其他数据分类/处理算法手工设计的滤波器,从而提高与配置、建立或设置神经网络114相关联的效率,从而提供相对于其他数据分类/处理技术的技术优势。
[0041]
神经网络114可以包括神经元或节点的输入层116和输出层122。神经网络114还可以具有一个或更多个隐藏层118、119,隐藏层可以包括神经元或节点的卷积层、池化层、全连接层和/或归一化层。在神经网络114中,每个神经元可以从前一层中的某个数量位置接收输入。在全连接层中,每个神经元可以从前一层的每个元素接收输入。
[0042]
神经网络114中的每个神经元可以通过对来自前一层的感受野(receptive field)的输入值应用某个函数来计算输出值。应用于输入值的函数通过权重和偏置(通常为实数)的向量指定。(例如,在训练阶段期间)神经网络114中的学习可以通过对偏置和/或
权重进行增量调整来进行。权重和偏置的向量可以被称为滤波器,并且可以表示输入的一些特征(例如,特定形状)。卷积神经网络的一个显著特征是许多神经元可以共享同一个滤波器。这减少了存储器占用,因为可以跨共享该滤波器的所有感受野使用单个偏置和单个权重向量,而不是每个感受野都有自己的偏置和权重向量。
[0043]
例如,在卷积层中,系统可以对输入层116应用卷积运算,将结果传递到下一层。卷积模拟了单个神经元对输入刺激的反应。每个卷积神经元仅处理其感受野的数据。与全连接的前馈神经网络相比,使用卷积运算可以减少神经网络114中使用的神经元的数量。因此,卷积运算可以减少自由参数的数量,允许网络用更少的参数来深入。例如,不管输入数据(例如,图像数据)大小如何,大小为5
×
5的平铺区域(每个具有相同的共享权重),可以仅使用25个可学习参数。以这种方式,具有卷积神经网络的第一神经网络114可以通过使用反向传播来解决在训练具有许多层的传统多层神经网络时的梯度消失或梯度爆炸问题。
[0044]
神经网络114(例如,配置有卷积神经网络)可以包括一个或更多个池化层。一个或更多个池化层可以包括局部池化层或全局池化层。池化层可以将一层神经元簇的输出合并到下一层的单个神经元中。例如,最大池化可以使用前一层的神经元簇中每个神经元的最大值。另一个示例是平均池化,这可以使用前一层神经元簇中每个神经元的平均值。
[0045]
神经网络114(例如,配置有卷积神经网络)可以包括全连接层。全连接层可以将一层中的每个神经元连接到另一层中的每个神经元。神经网络114可以被配置有卷积层中的共享的权重,这可以指相同滤波器被用于该层中的每个感受野,从而减少存储器占用并提高第一神经网络114的性能。
[0046]
隐藏层118、119可以包括被调节或配置为基于输入数据(例如,来自例如虚拟现实系统的传感器数据)检测信息的滤波器。当系统逐步通过神经网络114(例如,卷积神经网络)中的每一层时,系统可以转变(translate)来自第一层的输入,并将转变后的输入输出到第二层,以此类推。基于被检测、处理和/或计算的对象或信息的类型以及输入数据110的类型,神经网络114可以包括一个或更多个隐藏层118、119。
[0047]
在一些实施例中,卷积层是神经网络114(例如,被配置为cnn)的核心构建块。该层的参数128可以包括一组可学习的滤波器(或核),其具有小的感受野,但是延伸通过输入体积的整个深度。在前向传递期间,每个滤波器跨输入体积的宽度和高度进行卷积,计算滤波器条目和输入之间的点积,并产生该滤波器的二维激活图。结果,神经网络114可以学习滤波器,滤波器在输入中的某个空间位置检测到某些特定类型的特征时会激活。沿着深度维度堆叠所有滤波器的激活图,形成卷积层的全部输出体积。因此,输出体积中的每个条目也可以解释为观察输入中的小区域并与同一激活图中的神经元共享参数的神经元的输出。在卷积层中,神经元可以从前一层的受限子区域接收输入。通常,子区域是正方形的形状(例如,大小为5
×
5)。神经元的输入区域被称为它的感受野。因此,在全连接层中,感受野是整个前一层。在卷积层中,感受区可以小于整个前一层。
[0048]
第一神经网络114可以被训练为检测、分类、分割和/或转变输入数据110(例如,通过基于输入数据110检测或确定对象、事件、单词和/或其他特征的概率)。例如,神经网络114的第一输入层116可以接收输入数据110,处理输入数据110以将数据转换成第一中间输出,并将第一中间输出转发到第一隐藏层118。第一隐藏层118可以接收第一中间输出,处理第一中间输出以将第一中间输出转换成第二中间输出,并将第二中间输出转发到第二隐藏
层119。例如,第二隐藏层119可以接收第二中间输出,处理第二中间输出以将第二中间输出转换成第三中间输出,并将第三中间输出转发到输出层122。输出层122可以接收第三中间输出,处理第三中间输出以将第三中间输出转换成输出数据112,并且转发输出数据112(例如,可能转发到后处理引擎,以用于呈现给用户,用于存储,等等)。作为示例,输出数据112可以包括对象检测数据、增强的/转变的/补充的数据、推荐、分类和/或分割的数据。
[0049]
再次参考图1a,ai加速器108可以包括一个或更多个存储设备126。存储设备126可以被设计或实现为存储、保存或维护与ai加速器108相关联的任何类型或形式的数据。例如,数据可以包括由ai加速器108接收的输入数据110和/或(例如,在被输出到下一个设备或处理阶段之前的)输出数据112。数据可以包括用于或来自神经网络114和/或处理器124的任何处理阶段的中间数据。数据可以包括输入到神经网络114的神经元和在该神经元处处理的一个或更多个操作数,这些操作数可以从存储设备126读取或访问。例如,数据可以包括用于神经网络114的一个或更多个神经元(或节点)和/或层的输入数据、权重信息和/或偏置信息、激活函数信息和/或参数128,这些数据可以存储在存储设备126中并可以从存储设备126读取或访问。数据可以包括来自神经网络114的神经元的输出数据,该输出数据可以被写入和存储在存储设备126中。例如,数据可以包括用于神经网络114的一个或更多个神经元(或节点)和/或层的激活数据、细化或更新的数据(例如,来自训练阶段的权重信息和/或偏置信息,例如,激活函数信息和/或其他参数128),其可以被传送到或写入并存储在存储设备126中。
[0050]
在一些实施例中,ai加速器108可以包括一个或更多个处理器124。一个或更多个处理器124可以包括用于预处理用于任何一个或更多个神经网络114或ai加速器108的输入数据和/或后处理用于任何一个或更多个神经网络114或ai加速器108的输出数据的任何逻辑、电路和/或处理组件(例如,微处理器)。一个或更多个处理器124可以提供用于配置、控制和/或管理神经网络114或ai加速器108的一个或更多个操作的逻辑、电路、处理组件和/或功能。例如,处理器124可以接收与神经网络114相关联的数据或信号,以(例如,通过对实现神经网络114的操作的电路进行时钟门控控制)控制或降低功耗。作为另一个示例,处理器124可以划分和/或重新布置数据,以用于单独的处理(例如,在ai加速器108的各个组件处,例如并行处理)、顺序处理(例如,在ai加速器108的相同组件上,在不同的时间或阶段),或者用于存储在存储设备的不同存储器片(slice)中或者在不同的存储设备中。在一些实施例中,处理器124可以配置神经网络114,以针对特定的环境进行操作,提供特定类型的处理,和/或处理特定类型的输入数据,例如,通过识别、选择和/或加载特定的权重、激活函数和/或参数信息到神经网络114的神经元和/或层。
[0051]
在一些实施例中,ai加速器108被设计和/或实现为操纵或处理深度学习和/或ai工作负载。例如,ai加速器108可以为人工智能应用提供硬件加速,人工智能应用包括人工神经网络、机器视觉和机器学习。ai加速器108可以被配置用于处理机器人相关、物联网(iot)相关以及其他数据密集型或传感器驱动型的任务的操作。ai加速器108可以包括多核或多处理元件(pe)设计,并且可以被包含在各种类型和形式的设备(例如人工现实(例如,虚拟、增强或混合现实)系统、智能手机、平板电脑和计算机)中。ai加速器108的某些实施例可以包括以下项或使用以下项来实现:至少一个数字信号处理器(dsp)、协处理器、微处理器、计算机系统、处理器的异构计算配置、图形处理单元(gpu)、现场可编程门阵列(fpga)
和/或专用集成电路(asic)。ai加速器108可以是基于晶体管、基于半导体和/或基于量子计算的设备。
[0052]
现在参考图1b,描绘了用于执行ai相关处理的设备的示例实施例。简而言之,该设备可以包括或对应于ai加速器108,例如,具有以上结合图1a描述的一个或更多个特征。ai加速器108可以包括一个或更多个存储设备126(例如,诸如静态随机存取存储器(sram)设备的存储器)、一个或更多个缓冲器、多个处理元件(pe)电路或处理元件(pe)电路的阵列、其他逻辑或电路(例如,加法器电路)和/或其他结构或构造(例如,互连、数据总线、时钟电路、电源网络)。上述元件或组件中的每一个都以硬件或至少以硬件和软件的组合来实现。硬件可以例如包括电路元件(例如,一个或更多个晶体管、逻辑门、寄存器、存储器设备、电阻元件、导电元件、电容元件和/或导线或导电连接器)。
[0053]
在ai加速器108中实现的神经网络114(例如,人工神经网络)中,神经元可以采取各种形式,并且可以被称为处理元件(pe)或pe电路。神经元可以被实现为相对应的pe电路,并且可以在神经元处发生的处理/激活可以在pe电路处执行。pe被连接为特定的网络模式或阵列,不同的模式服务于不同的功能目的。人工神经网络中的pe是电操作的(例如,在半导体实施方式的实施例中),并且可以是模拟的、数字的或混合的。为了与生物突触的效果相比肩,可以给pe之间的连接分配乘法权重,这些权重可以被校准或“训练”以产生适当的系统输出。
[0054]
可以根据以下公式(例如,代表神经元的mcculloch-pitts模型)来定义pe:
[0055]
ζ=∑iwixiꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0056]
y=σ(ζ)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0057]
其中ζ是输入的加权和(例如,输入向量和抽头权重向量的内积),且σ(ζ)是加权和的函数。当权重和输入元素形成向量w和x时,ζ加权和成为简单的点积:
[0058]
ζ=w
·
x
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0059]
这可以被称为激活函数(例如,在阈值比较的情况下)或传递函数。在一些实施例中,一个或更多个pe可以被称为点积引擎。神经网络114的输入(例如,输入数据110)x可以来自输入空间,并且输出(例如,输出数据112)是输出空间的一部分。对于一些神经网络,输出空间y可以简单到{0,1},或者输出空间y可以是复杂的多维(例如,多通道)空间(例如,对于卷积神经网络)。神经网络往往在输入空间中每个自由度有一个输入,并且在输出空间中每个自由度有一个输出。
[0060]
在一些实施例中,pe可以被布置和/或实现为脉动阵列。脉动阵列可以是耦合的数据处理单元(dpu)(诸如被称为单元或节点的pe)的网络(例如同构网络)。每个节点或pe可以根据从其上游邻居接收的数据独立地计算部分结果,可以将结果存储在其内部,并且可以例如将结果传递到下游。脉动阵列可以是硬连线的,或者可以是为特定应用配置的软件。节点或pe可以是固定的和相同的,并且脉动阵列的互连可以是可编程的。脉动阵列可以依赖同步数据传递。
[0061]
再次参考图1b,pe 120的输入x可以是从存储设备126(例如,sram)读取或访问的输入流132的一部分。输入流132可以被引导到一行(水平的排(bank)或组)pe,并且可以跨一个或更多个pe共享,或者被划分成多个数据部分(重叠或非重叠数据部分)作为各个pe的输入。(例如,从存储设备126读取的)权重流中的权重134(或权重信息)可以被引导到或提
供给一列(垂直的排或组)pe。列中的每个pe可以共享相同的权重134或接收相对应的权重134。每个目标pe的输入和/或权重可以(例如,从存储设备126)直接路由到目标pe(例如,不经过其他pe),或者可以通过一个或更多个pe(例如,沿着pe的行或列)路由到目标pe。每个pe的输出可以直接路由出pe阵列(例如,不经过其他pe),或者可以通过一个或更多个pe(例如,沿着pe的列)路由以离开pe阵列。每列pe的输出可以在各列的加法器电路中求和或相加,并被提供给各列pe的缓冲器130。缓冲器130可以向存储设备126提供、传递、路由、写入接收到的输出和/或将该输出存储到存储设备126。在一些实施例中,由存储设备126存储的输出(例如,来自神经网络的一层的激活数据)可以从存储设备126中检索或读取,并且稍后可以用作pe 120的阵列的输入以用于处理(神经网络的后续层的处理)。在某些实施例中,由存储设备126存储的输出可以作为ai加速器108的输出数据112从存储设备126中检索或读取。
[0062]
现在参考图1c,描绘了用于执行ai相关处理的设备的一个示例实施例。简而言之,该设备可以包括或对应于ai加速器108,例如,具有以上结合图1a和图1b描述的一个或更多个特征。ai加速器108可以包括一个或更多个pe 120、其他逻辑或电路(例如加法器电路)和/或其他结构或构造(例如互连、数据总线、时钟电路、电源网络)。上述元件或组件中的每一个都以硬件或至少以硬件和软件的组合来实现。硬件可以例如包括电路元件(例如,一个或更多个晶体管、逻辑门、寄存器、存储器设备、电阻元件、导电元件、电容元件和/或导线或导电连接器)。
[0063]
在一些实施例中,pe 120可以包括一个或更多个乘累加(mac)单元或电路140。一个或更多个pe有时可以(单独地或集体地)被称为mac引擎。mac单元被配置为执行乘累加运算。mac单元可以包括乘法器电路、加法器电路和/或累加器电路。乘累加运算计算两个数的乘积,并将该乘积加到累加器上。结合累加器操作数a以及输入b和c,mac操作可以表示如下:
[0064]a←
a (b
×
c)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0065]
在一些实施例中,mac单元140可以包括以组合逻辑实现的乘法器,然后是加法器(例如,包括组合逻辑)和存储结果的累加器寄存器(例如,包括顺序和/或组合逻辑)。累加器寄存器的输出可以反馈到加法器的一个输入端,使得在每个时钟周期,乘法器的输出可以加到累加器寄存器。
[0066]
如上所述,mac单元140可以执行乘法和加法功能两项。mac单元140可以分两个阶段运算。mac单元140可以首先在第一阶段计算给定数字(输入)的乘积,并将结果转发给第二阶段运算(例如,相加和/或累加)。n位的mac单元140可以包括n位的乘法器、2n位的加法器和2n位的累加器。mac单元140的阵列或多个mac单元140(例如,在pe中)可以在脉动阵列中被布置,以用于并行积分、卷积、相关、矩阵乘法、数据排序和/或数据分析任务。
[0067]
本文中描述的各种系统和/或设备可以在计算系统中实现。图1d示出了表示性计算系统150的框图。在一些实施例中,图1a的系统可以形成计算系统150的处理单元156(或处理器156)的至少一部分。计算系统150可以被实现为例如设备(例如消费设备),诸如智能手机、其他移动电话、平板计算机、可穿戴计算设备(例如,智能手表、眼镜、头戴式显示器)、台式计算机、膝上型计算机,或者用分布式计算设备来实现。计算系统150可以被实现为提供vr、ar、mr体验。在一些实施例中,计算系统150可以包括传统的、专门的或定制的计算机
组件,诸如处理器156、存储装置158、网络接口151、用户输入设备152和用户输出设备154。
[0068]
网络接口151可以提供到局域/广域网(例如,互联网)的连接,(本地或远程)服务器或后端系统的网络接口也连接到局域/广域网。网络接口151可以包括有线接口(例如以太网)和/或无线接口,该无线接口实现各种rf数据通信标准,诸如wi-fi、蓝牙或蜂窝数据网络标准(例如3g、4g、5g、lte等)。
[0069]
用户输入设备152可以包括用户可以通过其向计算系统150提供信号的任何设备(或多个设备);计算系统150可以将信号解释为特定用户请求或信息的指示。用户输入设备152可以包括键盘、触摸板、触摸屏、鼠标或其他指向设备、滚轮、点击轮(click wheel)、拨号盘、按钮、开关、小键盘、麦克风、传感器(例如,运动传感器、眼睛跟踪传感器等)等等中的任何一个或全部。
[0070]
用户输出设备154可以包括计算系统150可以通过其向用户提供信息的任何设备。例如,用户输出设备154可以包括显示器,以显示由计算系统150生成或传送到计算系统150的图像。显示器可以结合各种图像生成技术(例如液晶显示器(lcd)、发光二极管(led)(包括有机发光二极管(oled))、投影系统、阴极射线管(crt)等)以及支持电子器件(例如数模或模数转换器、信号处理器等)。可以使用既用作输入设备又用作输出设备的设备,诸如触摸屏。还可以提供除了显示器之外或者代替显示器的用户输出设备154。示例包括指示灯、扬声器、触觉“显示”设备、打印机等。
[0071]
一些实施方式包括电子组件,诸如微处理器、存储装置和将计算机程序指令存储在非暂时性计算机可读存储介质中的存储器。本说明书中描述的许多特征可以被实现为被指定为在计算机可读存储介质上编码的一组程序指令的过程。当这些程序指令由一个或更多个处理器执行时,它们使处理器执行程序指令中指示的各种操作。程序指令或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件或使用解释器的微处理器执行的高级代码的文件。通过适当的编程,处理器156可以为计算系统150提供各种功能,包括本文描述的由服务器或客户端执行的任何功能,或者与消息管理服务相关联的其他功能。
[0072]
应当理解,计算系统150是说明性的,并且变化和修改是可能的。结合本公开使用的计算机系统可以具有这里没有具体描述的其他能力。此外,虽然计算系统150是参考特定的块来描述的,但是应当理解,这些块是为了描述方便而定义的,并不意味着组成部分的特定物理布置。例如,不同的块可以位于同一设施、同一服务器机架或同一主板上。此外,这些块不需要对应于物理上不同的组件。块可以被配置成例如通过对处理器编程或提供适当的控制电路来执行各种操作,并且根据如何获得初始配置,各种块可以是或可以不是可重新配置的。本公开的实施方式可以在各种装置(包括使用电路和软件的任意组合实现的电子设备)中实现。
[0073]
b.通过减少点积运算的计算量进行有效去卷积的方法和设备
[0074]
本文的公开内容包括用于通过减少点积的计算量来提高去卷积(有时称为去卷积过程或去卷积操作)的计算效率的系统、方法和设备的实施例。在一个方面,执行所公开的去卷积以生成或获得输入图像的放大图像。放大图像比输入图像具有更高的分辨率或具有更大数量的像素。
[0075]
在一些实施例中,接收具有像素集合的输入图像。可以对输入图像的像素集合的
子集和核的一部分执行第一点积,以生成输出图像的第一像素。在一个方面,关于第一点积执行的乘法的数量可以少于核的元素的数量。为了生成输出图像的第一像素而对核的剩余部分的第二点积可以被绕过或省略,从而使用更少的计算资源并降低功耗。
[0076]
有利地,所公开的去卷积通过减少点积的计算(例如,乘累加)数量来实现计算效率。在一个实施方式中,通过添加或填充具有预定值(例如”0”)的像素来获得比输入图像具有更大尺寸或更大数量的像素的中间图像。然后,在一个实施方式中,中间图像可以与核卷积以生成输出图像的像素。在一个实施方式中,可以对中间图像的不同子集和核执行点积运算,以生成输出图像的不同像素。对中间图像的子集与核执行点积运算可能涉及对应于核的元素的数量的乘法数量和累加数量。例如,假设核的维度是3
×
3,则通常可以执行9次乘法和8次累加来生成输出图像的像素。在一个方面,所公开的去卷积利用了这样的特性,即对具有预定值(例如,空数据)的填充或添加的像素与核的相对应的部分执行的点积运算不会影响像素的值。因此,所公开的去卷积可以绕过、避免、跳过或省略关于核的相对应的部分的点积运算,以减少用于生成输出图像的像素的点积运算的数量。
[0077]
有利的是,所公开的去卷积通过避免中间矩阵的生成而进一步提高了计算效率。在一种方法中,对于输出图像的每个像素,用于执行点积运算的输入图像的一个或更多个像素与核的相对应的部分可以被确定并被存储为映射信息。核的相对应的部分可以指在与输入图像的一个或更多个像素的位置相对应或对齐的位置处的核元素。根据映射信息,可以对输入图像的相关联的像素和核的相对应的部分执行点积以生成输出图像,而不生成或构造中间图像。通过避免中间图像的构造,所公开的去卷积可以用更少的计算资源(例如,处理组件或存储资源)更快地执行。
[0078]
参考图2,示出了根据本公开的示例实施方式的放大器200的框图。在一些实施例中,放大器200包括或被体现为图1a的系统。在一些实施例中,放大器200包括核生成器210、核存储装置215、去卷积映射生成器220、映射存储装置225、mac阵列230和/或mac控制器235。这些组件可以一起操作来接收输入图像205并对输入图像205执行去卷积,以生成比输入图像205具有更高分辨率或更高数量的像素的输出图像260。输入图像205可以具有在rgb颜色空间或任何颜色空间(例如,ycbcr等)中值的像素。在其他实施例中,放大器200包括比图2所示更多、更少或不同的组件。本文中公开的每个组件都以硬件或至少硬件和软件的组合来实现。
[0079]
核生成器210可以是或包括生成核并将核存储在核存储装置215中或使用核存储装置215的组件。核可以具有矩阵形式或布置的元素,其中核的每个元素可以乘以图像的要与核卷积的相对应的像素。每个元素可以有一个整数形式或小数形式的值。在一些实施例中,核生成器210根据预定的元素集自动生成核。例如,核的元素可以通过神经网络的训练来确定。在一些实施例中,核生成器210例如通过用户界面接收指定核的一个或更多个元素的用户输入,并允许根据用户输入修改核元素。核的元素数量或大小或维度可以是预定义的或可以是可配置的。
[0080]
去卷积映射生成器220可以是或包括生成映射信息的组件。在一个方面,映射信息针对输出图像260的每个像素,指示执行点积运算的输入图像205的一个或更多个像素与核的相对应的部分(或相对应的元素)。在另一方面,映射信息针对输出图像260的每个像素,指示核的可以对其绕过、跳过、避免或省略点积运算的一部分。映射信息可以包括位置、像
素、坐标、矩阵元素或(相对或绝对)空间信息的任何类型或形式的规则、指示符和/或描述,以指示执行点积运算的核的部分,和/或绕过点积运算的核的部分。为了生成输出图像的像素,可以省略对核的一部分的点积运算,因为对核的该一部分执行的点积运算或使用核的该一部分的点积运算不会影响输出图像的像素(例如,不会提供或生成关于输出图像的像素的信息)。例如,映射信息可以指示为了生成输出图像260的第一像素,可以对输入图像的第一像素和核的第一元素执行点积运算,其中可以绕过或省略对核的其他元素的点积运算来生成输出图像260的第一像素。去卷积映射生成器220可以将映射信息存储在映射存储装置225中或者使用映射存储装置225来存储映射信息。
[0081]
在一些实施例中,去卷积映射生成器220自动生成映射信息。在一种方法中,去卷积映射生成器220可以获得指示输入图像205的像素和中间图像的像素之间的映射关系的第一映射信息。中间图像可以包括具有预定值(例如,空数据)的像素,具有预定值(例如,空数据)的像素填充在输入图像205的预定位置的像素周围/之间或散布在输入图像205的预定位置的像素间。在一个示例中,具有空数据的填充像素可以包围来自输入图像205的每个像素或散布在输入图像205的每个像素之间。去卷积映射生成器220还可以获得第二映射信息,该第二映射信息针对输出图像260的每个像素,指示用于与核执行点积运算的中间图像的相对应的像素子集。去卷积映射生成器220可以组合或合成第一映射信息和第二映射信息,以自动生成针对输出图像260的每个像素指示输入图像205的一个或更多个像素与核的相对应的部分(或一个或更多个相对应的元素)执行点积运算的映射信息。
[0082]
例如,去卷积映射生成器220可以确定中间图像将在预定位置处具有带有空数据的某些像素,以及某些像素被映射到输入图像的其他位置的像素。去卷积映射生成器220对于输出图像260的每个像素还可以确定核的哪些元素将被应用于或乘以(例如,对应于)中间图像的空数据,以及核的哪些元素将被应用于或乘以(例如,对应于)映射到输入图像205的像素。对于输出图像260的每个像素,去卷积映射生成器220可以确定,应该对映射到输入图像205的像素的中间图像的像素与核的相对应的部分执行点积运算。此外,对于输出图像260的每个像素,去卷积映射生成器220可以确定对于具有空数据的中间图像的像素与核的相对应的元素的点积运算可以被绕过或省略。
[0083]
mac阵列230可以是mac单元140的阵列。mac控制器235可以是或包括配置mac阵列230以执行输入图像的去卷积或放大的组件。mac控制器235可以从存储装置或另一个设备接收输入图像,并且从核存储装置215接收核。mac控制器235可以将输入图像的像素应用为mac阵列230的第一输入,并将核的相对应的元素应用为mac阵列230的第二输入,使得mac阵列230可以对接收的输入执行点积运算,以生成输出图像260的像素。在一个实施方式中,mac单元140可以应用输入图像的像素子集和核的相对应的元素的子集,使得mac单元140可以在关于点积运算的乘法数量减少的情况下生成或输出输出图像260的相对应的像素。mac控制器235可以配置不同的mac单元140来同时或并行生成输出图像的像素。例如,每个mac单元140可以应用输入图像205的相对应的像素集和核345的相对应的元素集作为输入。替代地或附加地,mac控制器2365可以配置相同的mac单元140在不同的时间(例如,顺序地)生成输出图像的不同像素。例如,mac单元140可以在第一时间应用输入图像205的第一像素子集和核345的元素的第一子集作为输入,并且相同的mac单元140可以在第二时间应用输入图像205的第二像素子集和核345的元素的第二子集作为输入。通过重用相同的硬件组件,
可以节省计算资源。
[0084]
在一个方面,mac控制器235从映射存储装置225获得或接收映射信息,并且在计算量减少的情况下根据映射信息为输出图像260的像素确定点积运算。mac控制器235可以针对输出图像260的像素配置mac单元140以根据映射信息,通过应用输入图像205的像素子集和核的相对应的部分,执行减少数量的点积运算,从而生成由映射信息指示的像素。例如,代替对输入图像205的9个像素和3
×
3核的9个元素执行点积运算,mac控制器235可以对由映射信息所指示的输入图像205的一个像素和3
×
3核的一个元素执行点积。下面参考图3至图5提供了mac控制器235的操作的附加示例和描述。
[0085]
参考图3,示出了根据本公开的示例实施方式的示例输入图像205、中间图像315和放大图像260,以示出放大输入图像205的过程。在一个示例中,输入图像205具有9个像素i1、i2

i9。在一个示例中,具有81个像素的中间图像315可以通过向输入图像205的像素添加或填充具有预定值(例如,用灰色表示的空(null)、空白(empty)或无效数据)的像素来生成。例如,具有空数据的填充像素可以围绕输入图像205的像素和/或散布在输入图像205的像素之间。在一个示例中,中间图像315可以与核345卷积,以生成具有49个像素的输出图像260。在图3所示的示例中,核345具有9个元素k1、k2、k3

k9。在一个示例中,对中间图像315的不同子集和核345执行不同的点积,以生成输出图像260。例如,可以对中间图像315的子集318a和核345执行点积,以生成输出图像260的像素(0,0)。对于另一个示例,可以对中间图像315的另一个子集318b执行点积,以生成输出图像260的像素(0,6)。
[0086]
在一个方面,生成中间图像315并将中间图像315与核345进行卷积以生成输出图像260在计算上是低效的。例如,生成中间图像315消耗存储资源来存储81个像素。然后,将中间图像315与核卷积涉及441次乘法。尽管图3所示的示例示出了尺寸为3
×
3的输入图像205、尺寸为9
×
9的中间图像315和尺寸为7
×
7的输出图像260,但是在其他应用中,输入图像205、中间图像315和输出图像260可以具有与图3所示不同的尺寸或更大的尺寸。例如,为了生成1024
×
768的图像,乘法和累加的数量可能超过数千万或数亿。
[0087]
在一种方法中,通过绕过、避免、跳过或省略点积运算的计算,可以以提高的效率或更少的计算资源来执行所公开的去卷积或放大。例如,参考图4a至图4d,示出了根据本公开的示例实施方式,通过绕过或省略计算来获得放大图像的像素而执行的示例点积。在一个示例中,对于输出图像260的每个像素,映射信息指示对输入图像205的相对应的像素子集和核345的相对应的部分执行的点积。如由映射信息指示的,mac控制器235可以对输入图像205的像素子集和核345的相对应的部分执行点积运算,以生成输出图像260的像素。
[0088]
例如,在图4a中,为了生成输出图像260的像素(0,0),可以对输入图像205的像素i1与核345的元素k9执行点积运算。对核345的剩余元素(灰化)的点积运算可以被绕过或省略以生成像素(0,0),因为对核345的剩余元素与中间图像315的相对应的像素的点积运算不会影响像素(0,0)(例如,不会赋予像素(0,0)任何值、意义或信息),因为中间图像315的相对应的像素具有空数据。对于图4b中的另一个示例,为了生成输出图像260的像素(0,1),可以对输入图像205的像素i1与核345的元素k8执行点积运算。对核345的剩余元素(灰化)的点积运算可以被绕过或省略以生成像素(0,1),因为对核345的剩余元素与中间图像315的相对应的像素的点积运算不会影响像素(0,1),因为中间图像315的相对应的像素具有空数据。对于图4c中的另一个示例,为了生成输出图像260的像素(0,2),可以对输入图像205
的像素i1、i2与核345的元素k7、k9执行点积运算。对于图4d中的另一个示例,为了生成输出图像260的像素(0,3),可以对输入图像205的像素i2与核345的元素k8执行点积运算。
[0089]
有利的是,通过对像素子集与核的一部分执行点积运算,并且通过绕过对核的剩余部分的点积运算,可以显著减少乘法和累加的次数(例如,减少70%到80%,或者在某些情况下减少更多)。此外,生成或构建中间图像315可以被省略,以实现计算资源的节省,因为与具有空数据的中间图像315的填充图像相关联的点积运算可以被绕过或省略。
[0090]
参考图5,示出了根据本公开的示例实施方式的流程图,该流程图示出了放大输入图像以生成比输入图像具有更大数量的像素或更高分辨率的输出图像的过程500。在一些实施例中,过程500由图2的放大器200执行。在一些实施例中,过程500由其他实体执行。在一些实施例中,过程500包括比图5所示更多、更少或不同的步骤。
[0091]
在一种方法中,放大器200接收510要被放大的输入图像。在一种方法中,放大器200选择要被生成的输出图像的像素,并对输入图像的像素子集与核的一部分(或元素的子集)执行520点积,以生成输出图像的所选择的像素。核可以是预定的或可重新配置的。在一种方法中,放大器200绕过530对核的剩余部分的点积,以生成输出图像的像素。
[0092]
通常,为了生成输出图像的所选择的像素而关于点积执行的乘法的数量少于核的元素的数量。在一个示例中,可以对输入图像的相同像素但是与核的不同元素执行点积运算,以生成输出图像的不同像素。例如,输出图像的像素(0,0)可以通过将像素i1乘以核的元素k9来获得,并且输出图像的像素(0,1)可以通过将像素i1乘以核的元素k8来获得。在另一个示例中,可以对输入图像的不同像素但是与核的相同元素执行点积运算,以生成输出图像的不同像素。例如,输出图像的像素(0,1)可以通过将像素i1乘以核的元素k8来获得,并且输出图像的像素(0,3)可以通过将像素i2乘以核的元素k8来获得。在另一个示例中,可以用不同数量的乘法和累加来执行点积运算,以生成输出图像的不同像素。例如,输出图像的像素(0,1)可以通过将像素i1乘以核的元素k8来获得,而输出图像的像素(0,2)可以通过将像素i1乘以核的元素k7并且将像素i2乘以核的元素k9并且将两个乘法结果相加来获得。
[0093]
在一种方法中,放大器200可以获得对于输出图像260的每个像素指示对输入图像的相对应像素子集和核的相对应的部分执行点积的映射信息。根据映射信息,放大器200可以为所选择的像素确定输入图像的像素子集和核的相对应的部分,并且对输入图像的像素的确定的子集和核的相对应的部分执行点积运算。在一个方面,映射指示对于输出图像260的每个像素要绕过或省略对核的剩余部分的点积。根据映射信息,放大器200可以为所选择的像素确定核的剩余部分,并且绕过或省略对核的所确定的剩余部分的点积运算。
[0094]
在一种方法中,放大器200确定540是否存在要被生成的输出图像的附加像素。响应于确定存在要被生成的输出图像的附加像素,放大器200可以返回到步骤520以生成附加像素。响应于确定没有要被生成的输出图像的附加像素,放大器200可以存储输出图像和/或向另一设备提供输出图像,或者呈现用于显示的输出图像。
[0095]
现在已经描述了一些说明性的实施方式,显然前述是说明性的而不是限制性的,是通过示例的方式给出的。具体而言,尽管本文呈现的许多示例涉及方法动作或系统元素的特定组合,但是那些动作和那些元素可以以其他方式组合来实现相同的目标。结合一个实施方式讨论的动作、元素和特征不旨在被排除在其他实施方式或实施方式中的类似角色之外。
[0096]
用于实现结合本文公开的实施例描述的各种过程、操作、说明性逻辑、逻辑块、模块和电路的硬件和数据处理组件可以用通用单芯片或多芯片处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或其设计用于执行本文描述的功能的任何组合来实现或执行。通用处理器可以是微处理器,或者任何传统的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、与dsp内核结合的一个或更多个微处理器、或者任何其他这样的配置。在一些实施例中,特定的过程和方法可以由特定于给定功能的电路来执行。存储器(例如,存储器、存储器单元、存储设备等)可以包括一个或更多个设备(例如,ram、rom、闪存、硬盘储存设备等),以用于存储数据和/或计算机代码来完成或促进本公开中描述的各种过程、层和模块。存储器可以是或包括易失性存储器或非易失性存储器,并且可以包括数据库组件、目标代码组件、脚本组件或用于支持本公开中描述的各种活动和信息结构的任何其他类型的信息结构。根据示例性实施例,存储器经由处理电路可通信地连接到处理器,并且包括用于(例如,通过处理电路和/或处理器)执行本文描述的一个或更多个过程的计算机代码。
[0097]
本公开设想了用于完成各个操作的方法、系统和在任何机器可读介质上的程序产品。可以使用现有计算机处理器、或通过为此目的或其他目的所引入的恰当系统的专用计算机处理器或通过硬接线的系统来实现本公开的实施例。本公开的范围之内的实施例包括程序产品,其包括用于携带或具有存储于其上的机器可执行指令或数据结构的机器可读介质。这种机器可读介质可以是任意可用介质,其可以通过通用或专用计算机或具有处理器的其他机器访问。举例来讲,这种机器可读介质可包括ram、rom、eprom、eeprom或其他光盘储存器、磁盘储存器或其他磁储存设备、或可用于携带或存储以机器可执行指令或数据结构形式的所需程序代码的且可以通过通用或专用计算机或具有处理器的其他机器访问的任何其他介质。上面的组合也被包括在机器可读介质的范围内。机器可执行指令包括例如使得通用计算机、专用计算机或专用处理机器执行某一功能或一组功能的指令和数据。
[0098]
本文所使用的措辞和术语是为了描述的目的,且不应被视为限制性的。本文使用的“包括(including)”、“包含(comprising)”、“具有”、“包含(containing)”、“涉及”、“以......为特征”、“特征在于”及其变型意味着包含其后列出的项目、其等同物和附加项目,以及仅由其后列出的项目组成的替代实施方式。在一个实施方式中,本文描述的系统和方法包括一个、多于一个的每个组合或者所有描述的元件、动作或组件。
[0099]
本文以单数形式提及的系统和方法的实施方式或元素或动作的任何引用也可以包括包含多个这些元素的实施方式,并且本文以复数形式提及的任何实施方式或元素或动作也可以包括仅包含单个元素的实施方式。单数或复数形式的引用不旨在将当前公开的系统或方法、它们的组件、动作或元素限制为单个或更多个配置。对基于任何信息、动作或元素的任何动作或元素的引用可以包括其中动作或元素至少部分基于任何信息、动作或元素的实施方式。
[0100]
本文公开的任何实施方式可以与任何其他实施方式或实施例组合,并且对“实施方式”、“一些实施方式”、“一个实施方式”等的引用不一定是互斥的,并且旨在指示结合该实施方式描述的特定特征、结构或特性可以被包括在至少一个实施方式或实施例中。本文中使用的这些术语不一定都指同一实施方式。任何实施方式都可以以与本文公开的方面和
实施方式相一致的任何方式,以包括的方式或排他地,与任何其他实施方式相结合。
[0101]
在附图、详细描述或任何权利要求中的技术特征后面带有附图标记的地方,已经包括附图标记以增加附图、详细描述和权利要求的可理解性。因此,附图标记及其缺失都不意欲对任何权利要求元素的范围有任何限制影响。
[0102]
在不脱离其特征的情况下,本文描述的系统和方法可以以其他特定形式实施。除非另有明确说明,对“大约(approximately)”、“约(about)”、“基本上”或其他程度术语的提及包括给定测量值、单位或范围的 /-10%的变化。耦合元件可以彼此直接电耦合、机械耦合或物理耦合,或者利用中间元件电耦合、机械耦合或物理耦合。因此,本文描述的系统和方法的范围由所附权利要求而不是前面的描述来指示,并且落入权利要求的等同物的含义和范围内的变化被包含在其中。
[0103]
术语“耦合”及其变型包括两个构件直接或间接彼此联接。这种联接可以是静止的(例如,永久的或固定的)或可移动的(例如,可移除的或可释放的)。这种联接可以通过两个构件直接耦合或相互耦合来实现,也可以通过两个构件使用单独的中间构件和任何附加的中间构件相互耦合来实现,或者通过两个构件使用与两个构件中的一个构件一体地形成为单一单元体的中间构件相互耦合来实现。如果“耦合”或其变型由附加术语(例如,直接耦合)来修饰,则上面提供的“耦合”的一般定义由附加术语的简单语言含义来修饰(例如,“直接耦合”是指在通过任何单独的中间构件的情况下两个构件的联接),导致比上面提供的“耦合”的一般定义更窄的定义。这种耦合可以是机械的、电的或流体的。
[0104]
对“或”的提及可被解释为包含性的,因此,使用“或”描述的任何术语可以表示单个、一个以上和所有所述术语中的任何一个。对
““
a”和“b”中的至少一个”的提及可以只包括“a”,只包括“b”,以及同时包括“a”和“b”。这种与“包括”或其他开放术语一起使用的引用可以包括附加项目。
[0105]
在本质上不脱离本文公开的主题的教导和优点的情况下,可以对所描述的元件和动作进行修改,例如各种元件的尺寸、大小、结构、形状和比例、参数值、安装布置、材料使用、颜色、取向的变化。例如,显示为整体地形成的元件可以由多个部分或元件构成,元件的位置可以颠倒或以其他方式改变,并且分立元件的性质或数量或位置可以改变或变化。在不脱离本公开的范围的情况下,还可以在所公开的元件和操作的设计、操作条件和布置中进行其他替换、修改、改变和省略。
[0106]
本文提到的元件位置(例如,“顶部”、“底部”、“上面”、“下面”)仅用于描述附图中各种元件的取向。根据其他示例性实施例,各种元件的取向可以不同,并且这种变化被认为被本公开所包含。
再多了解一些

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

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

相关文献