首页 / 控制机器学习模型结构

控制机器学习模型结构无效专利 发明

技术内容

控制机器学习模型结构 背景技术 [0001] 电子技术已进步到在社会中实际上无处不在,且已被用于改进社会中的许多活动。例如,电子设备被用于执行各种任务,包括工作活动、通信、研究和娱乐。电子技术是由电子电路来实现的。可以实现不同种类的电子电路以提供不同种类的电子技术。 附图说明 [0002] 图1是示出用于控制机器学习模型结构的方法的一个示例的流程图; 图2是示出用于控制机器学习模型结构的方法的一个示例的流程图; 图3是可以用于控制一个或多个机器学习模型结构的装置的一个示例的框图; 图4是示出用于控制机器学习模型组件的计算机可读介质的一个示例的框图;以 及 图5是示出可以用于控制一个或多个机器学习模型结构的组件的一个示例的框 图。 具体实施方式 [0003] 机器学习模型是一种基于训练而学习的结构。机器学习模型的示例可以包括人工神经网络(例如,深度神经网络、卷积神经网络(CNN)、递归神经网络(RNN)等)。训练机器学习模型可以包括调整机器学习模型的一个或多个权重。例如,神经网络可以包括一组节点、层和/或节点之间的连接。该节点、层和/或连接可以具有相关联的权重。权重的示例可以是相对大的数值范围,并且可以是负的或正的。可以调整权重以训练神经网络执行一个或多个功能。例如,机器学习(例如,深度学习)可以在各种应用中实现,诸如对象检测(例如,检测图像中的面部)、图像分类(例如,将图像分类为包括一种类型的对象)、导航(例如,将机器人或自主车辆导航到一个位置同时避开障碍物)、语音识别、三维(3D)打印(例如,几何形状预测、变形补偿)等。 [0004] 机器学习模型训练和/或机器学习模型推断都会消耗相对大量的计算和/或功率资源。可以利用一些技术来减少训练期间的资源消耗。 [0005] 在一个或多个训练时段中执行训练或学习。在训练时段期间,可以利用标记数据或基础真实数据(例如,用于监督学习)来训练机器学习模型。例如,经标记的数据或基础真实数据可以包括具有目标输出数据(例如,(多个)分类、(多个)检测等)的输入训练数据,以训练机器学习模型权重。在无监督学习的一些示例中,误差函数可被用于训练机器学习模型。可以使用监督学习来训练本文描述的机器学习模型的一些示例,和/或可以使用非监督学习来训练本文描述的机器学习模型的一些示例。 [0006] 一旦机器学习模型被训练了,机器学习模型就可被用于进行推断。推断是经训练的机器学习模型的应用。例如,经训练的机器学习模型可被用来推断(例如,预测)一个或多个输出。推断可在一个或多个训练时段之外和/或之后执行。例如,推断可以在运行时、当机器学习模型在线时、当机器学习模型被部署时和/或不在训练时段期间执行。在推断(例如,运行时)期间,例如,运行时数据(例如,非训练数据、未标记数据、非基础真实数据等)可被提供作为机器学习模型的输入。 [0007] 在一些示例中,诸如膝上型计算机的设备上的相机可以被用于利用神经网络来执行对象检测(例如,面部检测、人检测等)。一些基于自主智能相机的推断设备(例如,机器人和无人机)可被部署在现场(例如,农田、工业环境等)中,并且可以是电池供电的。为了执行复杂的推断,一些设备可以运行深度神经网络,深度神经网络可能会消耗相对大量的处理和/或功率资源。例如,利用深度学习的推断可能会消耗相对大量的功率,从而增加设备功率消耗和/或缩短电池寿命。例如,频繁地对电池充电和/或更换电池可能会增加操作费用并且降低一些设备的有用性。提供用于改进推断性能、改进推断效率和/或降低推断期间的功率消耗的技术是有益的。这里描述的技术的一些例子可以改进推断性能,可以改进推断效率,和/或可以降低推断期间的功率消耗。 [0008] 本文描述的技术的一些示例可以使得能够控制机器学习模型结构。机器学习模型结构是一个或多个机器学习模型和/或一个或多个机器学习模型组件。机器学习模型组件的示例可以包括节点、连接和/或层。例如,机器学习模型结构可以包括一个或多个神经网络、一个或多个层、一个或多个节点、一个或多个连接等。一些机器学习模型组件可以被隐藏。例如,输入层和输出层之间的机器学习模型组件可以是隐藏机器学习模型组件(例如,(多个)隐藏节点、(多个)隐藏层等)。在一些示例中,机器学习模型结构(例如,深度神经网络结构)可以根据推断性能被动态地控制和/或修改。本文描述的技术的一些示例可以在针对机器学习模型结构的推断期间改进功率效率(例如,降低功率消耗)。例如,本文描述的技术的一些示例可以实现更长的电池寿命。本文描述的技术的一些示例可以维持推断准确度。本文描述的技术的一些示例可以在一个或多个装置(例如,(多个)电子设备、(多个)计算设备、(多个)移动设备、(多个)智能电话、(多个)平板设备、(多个)膝上型计算机、(多个)相机、机器人、打印机、车辆(例如,自主车辆)、无人机等)中实现。 [0009] 可以改进机器学习模型(例如,神经网络)结构功率效率以延长电池寿命。类似的功率效率的改进可以利用基于智能相机的自主推断设备实现。保存电池寿命可以使得在每次充电之间能够延长设备的工作。因此,高效的推断处理可以降低功率消耗和/或延长电池寿命。 [0010] 在一些方法中,可以针对最坏情况的场景来训练深度学习网络。对最坏情况场景的训练可能是有益的,因为在训练期间可能并不知道精确的推断条件,并且在推断时可能会出现苛刻的条件。因此,对最坏情况场景的训练可以在苛刻条件下在推断时提供准确的性能。然而,即使当场景没有比最坏情况训练要求更苛刻时,深度学习网络也会以与最坏情况场景类似地工作。例如,当场景不是最坏情况时,深度学习网络也可能被过度提供。在许多应用中,最坏情况条件可能只在一部分时间内发生。例如,部署的在夜间使用的相机里可能会有带噪声和照明不良的图像。在白天,相机里呈现的是对象被良好照明的和噪声较少的图像。夜间场景可以例如被认为是最坏情况的场景,而白天场景可以是要求较低的。在白天场景中,可以修改网络以降低复杂性和/或功率消耗。降低网络的复杂性和/或功率消耗可以在整体准确度上作出较小的牺牲,尽管网络仍然能够以高准确度针对明亮照明的图像推断。 [0011] 本文描述的一些技术可以在提供推断目标(例如,满足推断准确度目标)的同时减少经训练的机器学习模型结构。可以利用各种技术来在推断期间减少机器学习模型结构。 在一些示例中,控制机器学习模型结构可以包括丢弃(例如,去除、停用等)机器学习模型组件的随机选择。在一些示例中,控制机器学习模型结构可以包括选择机器学习模型组件的一个或多个子网络。在一些示例中,控制机器学习模型结构可以包括控制量化。在一些示例中,控制机器学习模型结构可以包括从机器学习模型集合体中选择一个或多个机器学习模型。本文描述的一些技术的示例可以在电子设备中实现,诸如常开式相机(其可以用于控制机器学习模型结构)、电池寿命被挑战的无人机、机器人和/或自驾汽车。各种电子设备可以受益于由这里描述的一些技术实现的低功率推断中。 [0012] 在所有附图中,相同或相似的附图标记可以表示相似但不必相同的要素。附图不一定按比例绘制,并且一些部件的尺寸可能被放大以更清楚地示出所示的示例。此外,附图提供了根据本说明书的示例和/或实施方式。然而,本说明书并不局限于附图中提供的示例和/或实施方式。 [0013] 图1是示出了用于控制机器学习模型结构的方法100的一个示例的流程图。方法 100和/或方法100的一个或多个要素可以由装置(例如,电子设备)来执行。例如,方法100可以由结合图3描述的装置302来执行。 [0014] 装置可以确定102环境条件。环境条件是环境的状态或情况的指示。环境的状态或情况的示例可以包括环境的照明(例如,照明亮度、照明颜色等)、环境中的一个或多个对象的位置(例如,人的位置、面部的位置、一个或多个使人分心的对象的存在、照明源位置、图像传感器放置、相机放置、光传感器放置等)、声学噪声、运动、时间等。环境条件的示例可以包括照明条件(例如,照度、亮度、检测到的颜色、光波长、光频率等)、姿态条件(例如,对象位置、对象姿态、像素位置、测量的深度、到对象的距离、三维(3D)对象位置、对象旋转、相机姿态、目标对象区带等)、光学信噪比(SNR)、声学噪声密度、声学SNR、对象速度、对象加速度和/或时间等。例如,环境条件可以是环境状态或情况的度量或测量值。在一些示例中,环境条件可以包括多个条件(例如,照明条件和姿态条件)。 [0015] 照明条件是环境照明状态的指示。例如,照明条件可以指示亮度、光强度、辉度、照度、光通量、像素亮度等。在一些示例中,照明条件可以以坎德拉、瓦特、流明、勒克斯、尼特、英尺烛光等为单位来表示。在一些示例中,照明条件可以被表达为值、值的直方图、值的平均值、最大值(来自一组值)、最小值(来自一组值)等。 [0016] 在一些示例中,确定102环境条件可以包括检测环境条件。例如,装置可以使用一个或多个传感器(例如,(多个)图像传感器、(多个)光传感器等)来检测环境条件。在一些示例中,环境条件可以基于照明和/或姿态。 [0017] 在一些示例中,装置可以使用一个或多个图像传感器来检测照明条件。例如,装置可以包括或者可以链接到一个或多个图像传感器(例如,(多个)相机)。(多个)图像传感器可以捕获一个或多个图像(例如,(多个)图像帧)。(多个)图像传感器(和/或图像信号处理器)可以提供可以指示(和/或可以用于确定)照明条件的数据。例如,图像传感器可以提供可以用于确定照明条件的像素值(例如,帧或一组像素值)。在一些示例中,图像传感器(和/或图像信号处理器)可以提供可以指示(和/或可以用于确定)照明条件的数据的统计和/或直方图。数据的(多个)统计和/或直方图可以指示由(多个)图像传感器感测的值(例如,像素值、像素亮度值等)的计数、盛行率、分布和/或频率。直方图可以在视觉上表示出来,也可以不在视觉上表示出来。数据或数据的直方图可用于确定照明条件。例如,可以基于由(多个)图像传感器提供的数据来计算平均值(例如,均值、中值和/或众数)、最大值、最小值和/或另一度量以产生照明条件。 [0018] 在一些示例中,装置可以使用一个或多个光传感器来检测照明条件。例如,装置可以包括或者可以链接到一个或多个光传感器(例如,(多个)相机)。(多个)光传感器可以捕获和/或提供可以指示(和/或可以用于确定)照明条件的数据。例如,光传感器可以提供可以用于确定照明条件的一个或多个值。参考图5描述了用于确定102照明条件的一些方法。 [0019] 姿态条件是一个或多个对象的姿态和/或一个或多个传感器的姿态的指示。姿态可指对象的位置、取向和/或视图(例如,视角)。例如,姿态条件可指示环境中的和/或相对于传感器的对象的姿态。例如,姿态条件可指示面部的正面或侧面(例如,轮廓)是否出现在由图像传感器捕获的一个或多个图像中。 [0020] 在一些示例中,装置可使用一个或多个图像传感器来检测姿态条件。例如,装置可以包括或可链接到可提供可指示(和/或可以用于确定)姿态条件的数据的一个或多个图像传感器(例如,(多个)相机)。例如,装置可以执行面部检测和/或可以确定在一个或多个图像中可见的面部的一部分。例如,装置可以确定在图像中是否示出了一个或者多个面部特征(例如,(多个)眼睛、鼻子、嘴、下巴等)。例如,在图像中检测到一只眼睛、一个嘴角和/或一个鼻孔的情况下,装置可以指示面部的轮廓姿态。在检测到两只眼睛、两个嘴角和/或两个鼻孔的情况下,装置可以指示例如面部的正面姿态。 [0021] 在一些示例中,确定102环境条件可以包括接收环境条件的指示。例如,装置可以包括和/或可以链接到输入设备。输入设备的示例可以包括触摸屏、键盘、鼠标、麦克风、端口(例如,通用串行总线(USB)端口、以太网端口等)、通信接口(例如,(多个)有线或无线通信接口)、(多个)图像传感器(例如,(多个)相机)等。例如,输入可以指示照明条件和/或姿态条件。 [0022] 装置可以基于环境条件来控制104机器学习模型结构,以控制(或例如调节)与机器学习模型结构的处理负载相关联的装置功率消耗。装置功率消耗是由装置使用或将由装置使用的电功率(或随时间推移的能量)的量。处理负载是处理的量(例如,处理器周期、处理复杂度、处理带宽的比例、存储器使用和/或存储器带宽等)。与机器学习模型结构的处理负载相关联的装置功率消耗可以指示用于执行机器学习模型结构的处理负载的电功率量。 例如,比较复杂的机器学习模型结构可以提供比较不复杂的机器学习模型结构更大的处理负载和更高的功率消耗。机器学习模型结构可以基于包括在机器学习模型结构中的机器学习模型的数量和/或包括在机器学习模型结构中的机器学习模型组件(例如,层、节点、连接等)的数量而在处理负载和/或功率消耗方面发生变化。装置可以通过控制机器学习模型(例如,神经网络)的数量和/或机器学习模型结构的机器学习模型组件的数量,基于环境条件来控制104机器学习模型结构。 [0023] 在一些示例中,当环境条件有利于推断准确度时(例如,当环境条件可以增加推断准确度时),装置就可以通过降低机器学习模型结构复杂度来控制104机器学习模型结构。 降低机器学习模型结构复杂度可以降低与机器学习模型结构相关联的处理负载和/或功率消耗。当环境条件有利于推断准确度时,可以在降低机器学习模型结构复杂度的同时保持推断准确度。在一些示例中,当环境条件不利于推断准确度时(例如,当环境条件可能会降低推断准确度时),装置可以增加机器学习模型结构复杂度。当环境条件不利于推断活动时,可通过增加机器学习模型结构复杂度来保持推断准确度(例如,可避免推断误差)。 [0024] 在一些示例中,控制104机器学习模型结构可以包括基于环境条件确定推断水平。 推断水平是推断复杂度或质量的量。例如,较高的推断水平可以与较大的机器学习模型结构复杂度相关联,而较低的推断水平可以与较小的机器学习模型复杂度相关联。不同的推断水平可以对应于或可以映射到不同的环境条件。例如,推断水平可以基于环境条件使用一个或多个规则(例如,阈值)、查找表和/或选择模型来确定。在一些示例中,装置可以将环境条件与一个或多个阈值进行比较以选择推断水平。在一些示例中,装置可以使用环境条件在查找表中查找推断水平。在一些示例中,装置可以利用选择模型(例如,机器学习模型、神经网络等),其可以基于环境条件来推断推断水平。例如,选择模型可从推断误差和/或置信度反馈中学习,以选择相对于环境条件减少推断误差和/或增加置信度的推断水平。 [0025] 在一些示例中,确定推断水平可以基于照明条件和推断水平之间的逆关系。例如,更好的照明条件(例如,更大的光量)可以对应于需要较低的推断水平,其中,可以利用更小的机器学习模型结构复杂度就可以推断出具有良好准确度的结果。更差的照明条件(例如,较少的光量)可以对应于需要较高的推断水平,其中,可以利用较大的机器学习模型复杂度来推断具有良好准确度的结果。 [0026] 在本文描述的技术的一些示例中,装置可以使用图像传感器来捕获(多个)图像和/或可以使用环境光传感器来采样光级以确定照明条件。基于(多个)输入(例如,基于照明条件),装置可以确定推断水平。例如,装置可以利用一个或多个规则、查找表和/或选择模型来基于照明条件确定推断水平。推断水平可以被存储为数据和/或可以被断言为信号。 在一些示例中,推断水平可以在层次或范围上相关。例如,可以将推断水平表示为L1、L2、L3等,其中,L1是较低的推断水平,其中,L2是比L1更高的推断水平,并且L3是比L2更高的推断水平,等等。例如,当照明条件指示图像传感器的良好对象照明时,可以选择 L1。在一些示例中,L1可以由于来自(多个)图像传感器的照明良好的对象而允许有功功率的节省。在一些示例中,较高水平(例如,L5)可指示当照明条件苛刻时可利用更复杂的推断。因此,L5可以指示出比L1更大的功率消耗。通过根据推断水平改变机器学习模型结构复杂度,装置可以降低平均功率消耗。 [0027] 在一些示例中,控制104机器学习模型可以包括从机器学习模型集合体中选择一个或多个机器学习模型。机器学习模型集合体是一组机器学习模型(例如,神经网络)。例如,可以从一组预训练的机器学习模型中选择一个或多个机器学习模型。在一些方法中,机器学习模型集合体中的神经网络可以用于通过组合来自多个机器学习模型的预测来减少方差。在本文描述的技术的一些示例中,可以为机器学习模型结构选择一个或多个机器学习模型(例如,(多个)神经网络)以执行特定的推断任务。机器学习模型集合体可以包括多个机器学习模型(例如,预训练的深度神经网络(DNN)),从所述多个机器学习模型中选择一个或多个机器学习模型以减少推断期间的装置功率消耗。 [0028] 可以不同地训练机器学习模型集合体中的不同机器学习模型。例如,机器学习模型(例如,DNN)可以被训练成在宽主题范围(例如,用于对象检测的不同对象类型、诸如用于对象检测的对象的不同姿态的不同姿态条件、不同的照明条件等)内进行归纳。为了实现目标准确度,可以设定机器学习超参数。超参数是与机器学习模型的结构和/或功能相关的机器学习模型的参数。超参数的示例可以包括层、节点和/或连接的数量。在主题的宽变化范围内的归纳可以利用更深和/或更复杂的机器学习模型(例如,网络)。例如,针对宽范围的面部姿态(例如,其是姿态不变的)训练的神经网络可能会比在正面面部上训练的网络(例如,没有其他姿态)或在轮廓面部上训练的网络(例如,没有其他姿态)更复杂。更复杂的机器学习模型(例如,神经网络)可能会消耗更多的计算吞吐量和功率。 [0029] 目标准确度是指定的准确度水平。例如,目标准确度可指示机器学习模型结构、机器学习模型、子网络等的推断准确度或性能的指定水平(例如,阈值)。在一些示例中,目标准确度可以是基于输入来设定的(例如,由用户指定的)。在一些示例中,目标准确度可以用置信度和/或误差可能性来表达。例如,机器学习模型可以产生具有置信度(例如,大于70%、 80%、85%、87.5%、90%、95%等)和/或误差可能性(例如,小于50%、40%、30%、25%、10%、5%等)的推断以满足目标准确度。 [0030] 在本文描述的技术的一些示例中,可以从机器学习模型集合体中选择满足推断任务的一个或多个标准(例如,对象姿态和/或照明的标准)的更简单(例如,最简单)的机器学习模型。选择更简单的机器学习模型可以降低装置功率消耗。在一些示例中,装置可以基于推断水平(例如,L1、L2、L3等)和/或基于所接收的环境条件的指示(例如,照明指示IL1、IL2等,和/或姿态指示P1、P2等)来从机器学习模型集合体中选择一个或多个机器学习模型。例如,在推断水平和/或接收到的指示指示良好照明条件和/或已建立的姿态条件(例如,没有正面姿态的轮廓姿态)的情况下,装置可选择用于照明条件和/或姿态条件的一个或多个较简单的机器学习模型。在推断水平和/或所接收的指示指示更具挑战性的环境条件(例如,多个面部姿态和低照度)的情况下,装置可以选择更一般化和/或复杂的机器学习模型。在一些示例中,可以基于查找表、(多个)规则、(多个)映射和/或模型选择模型来确定对应于每个推断水平和/或接收到的指示的(多个)机器学习模型的选择。例如,模型选择模型可以是被训练(例如,基于训练中的误差或误差反馈)以针对给定的推断水平和/或接收到的指示从机器学习模型集合体中选择一个或多个模型的机器学习模型。 [0031] 在一些示例中,控制104机器学习模型结构可以包括丢弃(例如,去除、停用等)机器学习模型组件的随机选择。一些方法可以在训练期间利用丢弃机器学习模型组件来防止过度拟合。本文描述的技术的一些示例可以在运行时(例如,在训练之后、在推断阶段等)丢弃机器学习模型组件的随机选择。在一些示例中,丢弃机器学习模型组件的随机选择可以包括丢弃随机隐藏单元和与随机隐藏单元相对应的连接。丢弃机器学习模型组件的随机选择的一些好处可以包括减少推断期间的处理负载、减少推断期间使用的参数的数量、和/或减少推断期间的存储器和存储器带宽使用。例如,丢弃机器学习模型组件可以减少在推断期间切换的节点的数量,从而减少功率消耗(例如,有功功率使用)。有功功率使用是在指令(例如,机器学习模型结构)的执行期间消耗的功率。有功功率可以包括由(多个)机器学习模型(例如,(多个)神经网络)消耗的功率的大部分。待机功率是当指令(例如,机器学习模型结构)未被执行时消耗的功率。由于低泄漏晶体管和功率门控,待机功率可以包括所消耗的功率的一小部分。处理较少的节点可能意味着使用较少的参数,并且可能导致消耗较少的存储器和/或存储器带宽。丢弃机器学习模型组件的随机选择可以减少功率消耗和/或提高电池寿命。 [0032] 用于丢弃机器学习模型组件的随机选择的技术的一些示例可以是自适应的。例如,在开始时间和/或运行时,丢弃的程度(例如,机器学习模型组件的数量)可以基于推断场景和/或相关联的一个或多个准则而变化。功率节省的量可随着丢弃的程度而变化。例如,当机器学习模型结构(例如,(多个)神经网络)达到更深程度的丢弃时,可以减少机器学习模型结构中切换的节点的数量,这可以降低有功功率消耗。由于每一场景都呈现不同的推断准则(例如,作为照明和/或姿态的函数),因此丢失的程度可以根据一个或多个推断准则来改变。因此,每一个场景可以导致降低的功率消耗,同时满足准确度目标。因此,可以降低跨场景的平均功率消耗。丢弃机器学习组件的随机选择可以基于推断水平(例如,L1、L2、L3等)。例如,装置可以丢弃L1的机器学习模型组件的比L3的更大的随机选择(例如,更大的数目、更大的比例等)。例如,装置可以丢弃L1的机器学习模型组件的百分比为例如,40%、 50%、60%、70%等的随机选择。对于高推断水平(例如,L5),可以不丢弃机器学习模型组件,或者可以丢弃机器学习模型组件的较小随机选择(例如,2%、5%、10%等)。在一些示例中,可以基于查找表、(多个)规则、(多个)映射和/或丢弃模型来确定对应于每个推断水平的机器学习组件的丢弃程度。例如,丢弃模型可以是被训练(例如,基于训练中的误差或误差反馈)以选择针对给定推断水平丢弃的机器学习模型组件的量的机器学习模型。 [0033] 较高的丢弃率可以导致降低的准确度。在本文描述的技术的一些示例中,当环境条件更有利(例如,良好的照明条件和/或具有单个姿态的姿态条件)时,可以应用较高的丢弃。由于有利的环境条件而获得的准确度可以补偿准确度的降低。因此,有利的环境条件可以允许机器学习模型结构以较小的功率运行,而没有准确度的净损失。本文描述的技术的一些示例可被用于通过根据改变的推断上下文来改变丢弃来维持准确度目标。如果使用情况容许改变的准确度,则本文描述的技术的一些示例可以允许更大地改变准确度。丢弃机器学习模型组件的随机选择可以提供一种用于针对准确度而权衡功率消耗的机制。 [0034] 在一些示例中,控制104机器学习模型结构可以包括选择机器学习模型组件的一个或多个子网络。例如,装置可以选择机器学习模型结构的一个或多个层、一个或多个节点和/或一个或多个连接。(多个)所选择的子网络(例如,所选择的机器学习模型组件)可以用于推断,而机器学习模型的一个或多个其他部分可以不被利用(例如,可以被停用、去除、精简、丢弃等)。选择一个或多个子网络可以导致改进的机器学习模型结构,同时维持目标准确度。例如,选择一个或多个子网络可以等效于搜索机器学习模型结构以寻找改进的一个或多个子网络和/或去除其他机器学习组件。例如,在大型神经网络中,可能存在可以提供用于较低计算成本和/或较低功率消耗的目标准确度的一个或多个子网络。 [0035] 在一些示例中,可以自适应地选择一个或多个子网络。可以在训练期间执行用于子网络选择的一些方法。在本文描述的技术的一些示例中,可以在运行时(例如,在训练之后、在推断期间等)执行子网络选择。例如,一个或多个子网络可以提供目标准确度。一个或多个子网可以提供减少的处理负载,这可以导致功率和/或吞吐量节省。一定范围的子网络可以提供一定范围的准确度(例如,从0%准确度到最高可能准确度)。 [0036] 在一些子网络选择的方法中,装置可标识与准确度范围相对应的子网络范围。在一些示例中,装置可以基于目标准确度来选择一个或多个子网络。例如,装置可以选择可以为环境条件提供目标准确度的一个或多个子网络。在一些示例中,装置可以基于推断水平来选择一个或多个子网络。例如,与对于较高的推断水平(例如,L3)的较大的子网络(例如,其可以提供目标准确度)相比,对于较低的推断水平(例如,L1),装置可以选择较小的子网络(例如,其可以提供目标准确度)。例如,在神经网络的编制时,装置可以从可以提供目标准确度的子网络中选择具有最小功率消耗量的子网络(例如,最小子网络)。例如,统计和/或机器学习方法可以用于预测装置上(例如,给定硬件上)的子网络的功率消耗和/或吞吐量。例如,可以先验地标识不同子网络的功率消耗和/或准确度。所标识的子网络可以用于在运行时的子网络选择,这可以实现在运行时在功率消耗与性能(例如,准确度)之间改善的权衡。在一些示例中,对应于每个推断水平的子网络选择可基于查找表、(多个)规则、(多个)映射、和/或子网络选择模型来确定。例如,子网络选择模型可以是被训练(例如,基于训练中的误差或误差反馈)以选择用于给定推断水平的机器学习模型组件的子网络的机器学习模型。 [0037] 在一些示例中,控制104机器学习模型结构可以包括控制量化。量化是用离散数字表示数量。例如,量化可以指用于表示数的多个位。在一些示例中,可利用量化来减少用以表示数的位数。例如,32位浮点值可被用于训练机器学习模型。在运行时,在一些情况下可以使用较少数量的位(例如,16位数、8位数、4位数等)。在推断时,例如,在一些情况下可以使用8位整数和/或1位权重和激活,这可以导致功率消耗的降低(例如,面积和/或能量节省)。 [0038] 在一些示例中,装置可以控制量化。例如,可以自适应地控制量化。在一些方法中,机器学习模型结构(例如,(多个)神经网络)可以在运行时(例如,基于目标准确度)被量化。 在一些方法中,当机器学习模型被量化时,所有层可以以相同的格式被量化(例如,所有层可以用8位整数或4位整数等来表示)。在本文描述的技术的一些示例中,可(例如,基于目标准确度)适配量化。例如,机器学习模型结构的每一层都可以具有单独的量化。用于一个层的量化可取决于一个或多个因素,诸如权重分布、层深度等。可以在运行时控制(例如修改)每个层的量化。例如,可以基于目标准确度(例如,维持层的过去量化的目标准确度)和/或基于误差反馈来控制每一层的量化。在一些示例中,控制量化可以降低计算复杂度和/或提高能量效率。在一些示例中,可以基于推断水平来控制量化。例如,可为较低的推断水平(例如,L1)选择一个或多个层的较低量化(例如,4位整数)。可为较高的推断水平(例如,L3)选择较高的量化(例如,16位整数)。在一些示例中,对应于每个推断水平的量化的量可以基于查找表、(多个)规则、(多个)映射和/或量化模型来确定。例如,量化模型可以是被训练(例如,基于训练中的误差或误差反馈)以选择给定推断水平的量化的量的机器学习模型。 [0039] 在一些示例中,装置可以执行从机器学习模型集合体中选择机器学习模型、丢弃机器学习模型组件的随机选择、选择机器学习模型组件的子网络和/或控制量化。在一些示例中,可以按顺序执行操作。例如,可以在丢弃随机选择、选择子网络和/或控制量化之前执行从机器学习模型集合体中选择机器学习模型。例如,可以在运行时的开始(例如,开始时间)执行从机器学习模型集合体中选择机器学习模型。一旦选择了机器学习模型(例如,网络),就可以通过执行随机选择丢弃、子网络选择和/或量化控制来在运行时期间提取进一步的功率节省。因此,装置可以在运行时期间达到较低功率状态。在一些示例中,可以实现其他顺序,顺序可以变化,和/或操作可以重复(例如,迭代)。 [0040] 在一些示例中,方法100可以包括基于控制的机器学习模型结构来进行推断。在一些示例中,可以基于推断来确定误差反馈。误差反馈是指示误差的置信度或可能性的一个或多个值。例如,机器学习模型结构可以为每个推断结果提供置信度值和/或误差值。置信度值可以指示推断结果是正确的可能性。误差值可以指示推断结果不正确的可能性。在一些示例中,误差反馈可以被用于进一步控制机器学习模型结构。例如,装置可以基于误差反馈来控制机器学习模型结构。 [0041] 在一些示例中,装置可以基于误差反馈来增加或减少机器学习模型结构复杂度。 例如,如果误差反馈指示置信度值高于目标准确度,则装置可以降低机器学习模型结构复杂度。在一些示例中,在置信值高于目标准确度的情况下,装置可以从机器学习模型集合体中选择机器学习模型,可以丢弃更多的机器学习模型组件,可以选择更小的子网络,和/或可以减少量化。在一些示例中,在置信值高于目标准确度的情况下,装置可以从机器学习模型集合体中选择机器学习模型,可以丢弃更少的机器学习模型组件,可以选择更大的子网络,和/或可以增加量化。 [0042] 图2是示出用于控制机器学习模型结构的方法200的一个示例的流程图。方法200和/或方法200的一个或多个要素可由装置(例如,电子设备)来执行。例如,方法200可以由结合图3描述的装置302来执行。 [0043] 装置可以确定202环境条件。在一些示例中,确定202环境条件可以如关于图1所描述的那样来执行。例如,装置可以基于感测的数据和/或基于接收的指示来确定照明条件、姿态条件和/或其他环境状态。 [0044] 装置可以基于环境条件确定204推断水平。在一些示例中,确定204推断水平可以如关于图1所述的那样来执行。例如,装置可以使用一个或多个规则(例如,阈值)、查找表和/或选择模型基于环境条件来确定推断水平。 [0045] 装置可以通过从机器学习模型集合体中选择机器学习模型、通过丢弃机器学习模型组件(例如,(多个)隐藏节点、(多个)隐藏层等)的随机选择、通过选择机器学习模型组件的子网络和/或通过控制量化,来基于环境条件控制206机器学习模型结构。在一些示例中,控制206机器学习模型结构可以如关于图1所描述的那样来执行。例如,装置可以基于推断水平和/或基于所接收的指示来从机器学习模型集合体中选择机器学习模型,丢弃机器学习模型组件(例如,(多个)隐藏节点、(多个)隐藏层等)的随机选择,选择机器学习模型组件的子网络,和/或控制量化。在一些示例中,推断水平中的每一个可以被映射到相应的机器学习模型选择、映射到随机丢弃的机器学习模型组件的量(例如,比例、百分比、数量等)、映射到子网络选择、和/或映射到机器学习模型结构的量化。例如,推断水平可以使用查找表和/或一个或多个规则(例如,阈值或案例陈述)来映射。例如,每个推断水平可以都对应于机器学习模型选择(例如,L1对应于模型A,L2对应于模型B,L3对应于模型C,等等),可以对应于要丢弃的机器学习模型组件的比例(例如,L1对应于70%,L2对应于50%,L3对应于20%,等等),可以对应于子网络选择(例如,L1对应于子网络X,L2对应于子网络Y,L3对应于子网络Z,等等),和/或可以对应于量化的量(例如,L1对应于4位,L2对应于8位,L3对应于16位,等等)。 [0046] 在一些示例中,可以基于接收到的指示(并且可以不基于例如推断水平)从机器学习模型集合体中选择机器学习模型。例如,可以基于接收到的指示来选择机器学习模型。可以使用查找表和/或一个或多个规则将每个潜在指示映射到从集合体的机器学习模型选择。例如,第一指示可对应于模型A,第二指示可对应于模型B,并且第三指示可对应于模型A和B,等等。 [0047] 装置可以基于控制的机器学习模型结构来执行208推断。在一些示例中,执行208推断可以如关于图1所描述的那样来完成。例如,装置可以利用机器学习模型结构来执行推断。例如,装置可以向机器学习模型结构提供输入(例如,(多个)图像帧、音频信号、姿态信息等),机器学习模型结构可以产生具有(多个)置信度值和/或(多个)误差值的一个或多个推断结果(例如,对象检测、图像分类、语音识别、路线确定等)。在一些示例中,装置可以基于推断来确定误差反馈。例如,(多个)置信度值和/或(多个)误差值可以用作误差反馈和/或可以用于确定误差反馈。在一些示例中,可以(例如,通过后台任务)收集(多个)置信度值和/或(多个)误差值以确定误差或误差反馈。在一些示例中,(多个)置信度值和/或(多个)误差值可以是误差(例如,误差反馈),或者误差(例如,误差反馈)可以被确定为值的组合(例如,在一个周期或多个推断上的平均置信度、在一个周期或多个推断上的平均误差等)的误差(例如,误差反馈)。在一些示例中,装置可以利用误差反馈来控制(例如,修改)机器学习模型结构以用于进一步(例如,后续)推断。在一些示例中,利用误差反馈来控制机器学习模型结构可以如关于图1所描述的那样来执行。 [0048] 装置可以提供210一个或多个推断结果。例如,装置可以存储(多个)推断结果,可以将(多个)推断结果发送到另一设备,和/或可以(例如,在显示器上和/或在用户界面中)呈现(多个)推断结果。例如,装置可以呈现对象检测结果(例如,指示和/或标识检测到的对象的标记图像),可以呈现图像分类结果,可以呈现语音识别结果,和/或可以呈现导航结果(例如,地图和/或具有标记路线的图像)等。在一些示例中,装置可以基于(多个)推断结果来执行一个或多个操作。例如,装置可以跟踪检测到的对象,呈现包括检测到的对象(例如,人、面部等)的图像帧,可以计算包括对象的帧的比例,可以控制交通工具(例如,机动车、汽车、飞行器、无人机等)遵循导航路线,可以控制机器人,可以基于识别的语音执行命令等。 [0049] 图3是可以用于控制一个或多个机器学习模型结构的装置302的一个示例的框图。 装置302可以是设备,诸如个人计算机、服务器计算机、打印机、3D打印机、智能电话、平板计算机、机器人、交通工具、飞行器等。装置302可以包括和/或可以耦合到处理器304和/或存储器306。在一些示例中,装置302可以与另一个或多个设备通信。装置302可以包括附加组件(未示出)和/或本文描述的一些组件可以被去除和/或修改,而不脱离本公开的范围。 [0050] 处理器304可以是中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/或适于检索和执行存储在存储器306中的指令的其它硬件设备中的任一个。处理器304可以提取、解码和/或执行存储在存储器306中的指令(例如,环境条件确定指令310、推断水平确定指令312、机器学习模型结构修改指令314和/或操作指令318)。在一些示例中,处理器304可以包括一个或多个电子电路,该一个或多个电子电路包括用于执行指令(例如,环境条件确定指令310、推断水平确定指令312、机器学习模型结构修改指令314和/或操作指令)的一个或多个功能的电子组件。 在一些示例中,处理器304可以执行结合图1‑5中的一个、一些或全部描述的功能、操作、要素、方法等中的一个、一些或全部。 [0051] 存储器306可以是包含或存储电子信息(例如,指令和/或数据)的任何电子、磁、光或其他物理存储设备。因此,存储器306可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储设备和/或光盘等。在一些实施方式中,存储器306可以是非暂时性有形机器可读存储介质,其中,术语“非暂时性”不包括暂时性传播信号。处理器304可以与存储器306电子通信。 [0052] 在一些示例中,装置302还可以包括数据存储装置(未示出),处理器304可以在其上存储信息。数据存储装置可以是易失性和/或非易失性存储器,诸如动态随机存取存储器(DRAM)、EEPROM、磁阻随机存取存储器(MRAM)、相变RAM(PCRAM)、忆阻器和/或闪速存储器等。在一些示例中,存储器306可以被包括在数据存储装置中。在一些示例中,存储器306可以与数据存储装置分离。在一些方法中,数据存储装置可以存储与存储器306所存储的指令和/或数据类似的指令和/或数据。例如,数据存储装置可以是非易失性存储器,并且存储器 306可以是易失性存储器。 [0053] 在一些示例中,装置302可以包括输入/输出接口(未示出),处理器304可以通过该输入/输出接口与一个或多个外部设备(未示出)通信,例如以接收和/或存储信息(例如,机器学习模型结构数据308、所接收的指示等)。输入/输出接口可以包括硬件和/或机器可读指令,以使得处理器304能够与一个或多个外部设备通信。输入/输出接口可以实现到一个或多个外部设备的有线或无线连接。在一些示例中,输入/输出接口还可以包括网络接口卡和/或还可以包括硬件和/或机器可读指令以使得处理器304能够与各种输入和/或输出设备通信,诸如键盘、鼠标、显示器、另一装置、电子设备、计算设备等,用户可以通过所述输入和/或输出设备将指令和/或指示输入到装置302中。在一些示例中,装置302可以从一个或多个外部设备(例如,扫描仪、可移除存储装置、网络设备等)接收机器学习模型结构数据 308。 [0054] 在一些示例中,存储器306可以存储机器学习模型结构数据308。机器学习模型结构数据308可以由装置302生成和/或从另一设备接收。机器学习模型结构数据308的一些示例可以包括指示一个或多个机器学习模型(例如,(多个)神经网络)、机器学习模型集合体、机器学习模型组件(例如,层、节点、连接等)、权重、量化、子网络等的数据。机器学习模型结构数据308可以指示机器学习模型结构和/或机器学习模型组件。机器学习模型结构数据 308可以包括指示被停用、去除、选择、未选择等的机器学习模型组件的数据。在一些示例中,机器学习模型结构数据308可以包括指示机器学习模型、子网络量化等的准确度的数据,和/或可以包括指示一个或多个目标准确度的数据。在一些示例中,机器学习模型结构数据308的(多个)机器学习模型、(多个)机器学习模型组件和/或(多个)子网络等中的一些或全部可以被预训练。在一些示例中,机器学习模型结构数据308的(多个)机器学习模型、(多个)机器学习模型组件和/或(多个)子网络等中的一些或全部可以在装置302上被训练。 [0055] 存储器306可存储环境条件确定指令310。处理器304可执行环境条件确定指令310以确定环境条件(例如,环境的一个或多个状态)。例如,处理器304可以执行环境条件确定指令310以基于输入来确定环境条件。例如,装置302可以捕获和/或接收(多个)图像帧、(多个)环境光水平、音频和/或运动等,和/或可以接收来自输入设备的指示。例如,装置302可以包括和/或可以耦合到一个或多个传感器(例如,(多个)相机、光传感器、运动传感器、麦克风等)和/或可以包括和/或可以耦合到一个或多个输入设备(例如,触摸屏、鼠标、键盘等)。在一些示例中,输入可以在训练机器学习模型结构(例如,(多个)机器学习模型、(多个)机器学习模型组件、(多个)神经网络)之后由传感器捕获。在一些示例中,处理器304可以执行环境条件确定指令310以确定环境条件(例如,照明条件、姿态条件等),如参考图1和/或图2所描述的。 [0056] 存储器306可以存储推断水平确定指令312。处理器304可以执行推断水平确定指令312,以基于环境条件确定推断水平。例如,处理器304可以执行推断水平确定指令312,以基于环境条件和/或误差反馈确定推断水平。例如,处理器304可以基于环境条件确定初步推断水平和/或可以基于误差反馈调整初步推断水平(例如,如果误差反馈超出目标准确度之上的目标范围,则可以降低第一推断水平,如果误差反馈低于目标准确度,则可以增加初步推断水平,或者如果误差反馈在目标准确度之上的目标范围内,则可以不调整初步推断水平)。在一些示例中,确定推断水平可以是如参考图1和/或图2所描述的来完成的。 [0057] 存储器306可以存储机器学习模型结构修改指令314。处理器304可以执行机器学习模型结构修改指令314以修改一个或多个机器学习模型结构。例如,处理器304可以执行机器学习模型结构修改指令314,以基于推断水平修改机器学习模型结构,从而调节装置 302的功率消耗。例如,处理器304可以修改机器学习模型结构以降低机器学习模型结构的复杂度、处理负载和/或功率消耗,同时维持(例如,满足)目标准确度。在一些示例中,修改机器学习模型结构可以如参考图1和/或图2所描述的那样来完成。 [0058] 在一些示例中,处理器304可以执行操作指令318以基于由机器学习模型结构提供的推断结果来执行操作。例如,处理器304可以呈现推断结果,可以将推断结果存储在存储器306中,和/或可以将推断结果发送到另一个或多个设备。在一些示例中,处理器304可以在显示器和/或用户界面上呈现推断结果。在一些示例中,处理器304可以控制车辆(例如,自动驾驶汽车、无人机等),可以发送消息(例如,指示从安全相机的图像检测到人),可以创建报告(例如,在组装线上从相机的图像检测到多个部件)等。 [0059] 图4是示出了用于控制机器学习模型组件的计算机可读介质420的一个示例的框图。计算机可读介质420可以是非暂时性的、有形的计算机可读介质420。计算机可读介质 420可以是例如RAM、EEPROM、存储设备、光盘等。在一些示例中,计算机可读介质420可以是易失性和/或非易失性存储器,诸如DRAM、EEPROM、MRAM、PCRAM、忆阻器、闪速存储器等。在一些实施方式中,结合图3描述的存储器306可以是结合图4描述的计算机可读介质420的一个示例。 [0060] 计算机可读介质420可以包括代码(例如,数据和/或可执行代码或指令)。例如,计算机可读介质420可以包括机器学习模型组件数据421、环境条件确定指令422、映射指令 423和/或机器学习模型组件控制指令424。 [0061] 在一些示例中,计算机可读介质420可以存储机器学习模型组件数据421。机器学习模型组件数据421的一些示例可以包括指示一个或多个机器学习模型的一个或多个层、一个或多个节点、一个或多个连接等的数据。例如,机器学习模型组件数据421可包括指示机器学习模型结构的一个或多个机器学习模型组件的数据。 [0062] 在一些示例中,环境条件确定指令422是用以致使处理器确定指示传感器将经历的信噪比(SNR)的环境条件的代码。在一些示例中,这可以如结合图1、图2和/或图3所描述的来实现。SNR是目标数据(例如,对象、目标声音等)的可分辨性的条件或度量。在一些示例中,SNR可被计算和/或表达为目标信号的量(例如,幅度)与噪声的量(例如,幅度)的比率。 [0063] 在一些示例中,环境条件确定指令422可致使处理器利用图像传感器所经历的环境的一个或多个图像和/或利用来自环境中的一个或多个光传感器的数据来确定照明条件。例如,照明条件可以指示(多个)图像传感器和/或(多个)光传感器所经历的光学SNR。例如,增加的亮度可以对应于增加的光SNR。在一些示例中,环境条件确定指令422可以使处理器利用音频传感器(例如,(多个)麦克风)所经历的一个或多个音频信号来确定声学条件。 声学条件是环境的声音(例如,目标声音,诸如用户语音或音乐)的状态的指示。例如,声学条件可以指示音量、响度、声音强度和/或噪声等。在一些示例中,声学条件可以以分贝(dB)为单位来表示。在一些示例中,声学条件可以被表达为值、值的直方图、值的平均值、最大值(来自一组值)、最小值(来自一组值)等。在一些示例中,增加的目标声音和/或降低的噪声可以对应于增加声学SNR。 [0064] 在一些示例中,映射指令423是用于使处理器将环境条件映射到推断水平的代码。 在一些示例中,这可以如结合图1、图2和/或图3所描述的那样来完成。例如,映射指令423可以使处理器使用查找表、一个或多个规则和/或选择模型来将环境条件映射到推断水平。例如,映射指令423可以使处理器查找对应于环境条件的推断水平,以通过将(多个)规则应用于环境条件来选择推断水平,和/或通过将环境条件输入到选择模型(例如,机器学习模型、神经网络等)中来推断出推断水平。 [0065] 在一些示例中,机器学习模型组件控制指令424是用于使处理器基于推断水平来控制机器学习模型组件的代码。在一些示例中,这可以如参考图1、图2和/或图3所描述的那样来实现。例如,机器学习模型组件控制指令424可以使处理器基于推断水平来去除(例如,随机丢弃)机器学习模型组件的第一子集、选择机器学习模型组件的第二子集(例如,子网络)和/或选择机器学习模型组件(例如,层)的一个或多个量化。 [0066] 图5是示出了可以用于控制一个或多个机器学习模型结构的组件的一个示例的框图。在一些示例中,参考图5描述的一个、一些或所有组件可以被包括在参考图3描述的装置 302中和/或由其实现。在一些示例中,参考图5描述的一个或多个组件可以执行参考图1、图 2、图3和/或图4描述的一个、一些或所有功能和/或操作,参考图5描述的组件可以包括图像传感器536、图像信号处理器538、编码器540、光传感器542、照明水平确定544组件、第一推断水平确定546组件、第二推断水平确定548组件、机器学习模型结构控制550组件、选择丢弃552组件、子网络选择554组件、量化控制556组件、集合体选择558组件和机器学习模型结构560组件560。图5中描述的组件中的组件可以以硬件(例如,电路)和/或硬件和指令的组合(例如,具有指令的处理器)来实现。在其中组件是以单独的硬件要素实施的一些示例中,所述组件可以通过传示和/或发送信号来通信。 [0067] 参考图5描述的组件可以从图像传感器536(例如,相机)获取图像(例如,静止图像和/或视频),确定一个或多个推断水平,并且控制机器学习模型结构。图像传感器536可捕获待推断的帧。图像传感器536的示例可以包括具有适于捕获图像以供推断的一个或多个特性的相机。例如,相机可以具有视场(FOV)、低光捕获能力、分辨率、照明(例如,发光二极管(LED)照明)、红外(IR)光敏感度和/或可见光敏感度,以使得相机能够捕获图像以进行推断。在一些实施方式中可以包括图像信号处理器538(例如,用于推断在联合图像专家组(JPEG)帧上训练的DNN)。在一些示例中,图像传感器536和/或图像信号处理器538可输出原始拜耳帧(例如,针对已被训练以在原始拜耳帧上推断的DNN)。 [0068] 照明水平确定544组件可以确定即时照明水平。例如,照明水平确定544组件可以从图像传感器536和/或图像信号处理器538接收呈照明值或照明值的直方图的形式的一个或多个输入。在一些示例中,照明水平确定544可从光传感器542对环境光条件取样。一个或多个输入可以在运行时周期性地被采样,或者与图像传感器(例如,相机)帧速率的函数同步。在一些示例中,感测速率和/或照明水平确定速率可以与第一推断水平确定546和/或第二推断水平确定548的速率相匹配。照明水平确定544组件可以输出照明水平。照明水平是环境中的照明的水平。照明水平可以是本文所述的照明条件的一个示例。当在运行时对一个或多个输入采样时,可以更新该照明水平。 [0069] 第一推断水平确定546组件可以基于照明水平来确定第一推断水平。在一些示例中,第一推断水平确定546组件可以确定如图1、图2、图3和/或图4所述的第一推断水平。例如,第一推断水平确定546组件可以利用照明水平(例如照明条件)使用查找表、一个或多个规则和/或选择模型来确定第一推断水平(例如L1、L2等)。在一些示例中,可以基于训练中的误差或误差反馈来训练选择模型。 [0070] 如本文所述,机器学习模型结构560可以产生推断结果564和对应的误差反馈562(例如,误差值、置信度值、一段时间内的误差值的组合和/或一段时间内的置信度值的组合等)。误差反馈562可被提供给第一推断水平确定546组件和/或第二推断水平确定548组件。 误差反馈562可以是机器学习模型结构560的性能的度量。在一些示例中,在训练期间,可以基于跨变化的照明条件的加权误差来调整选择模型以确定要估计的推断水平。当部署机器学习模型结构560时,第一推断水平确定546组件可以继续改进现实世界情况。 [0071] 在一些示例中,环境可以配备有多个图像传感器(例如,相机)和/或机器学习模型结构以用于推断。为了适应协调和/或提高全局性能,第一推断水平确定546组件可向另一个推断装置或多个推断装置发送信号566和/或从另一个推断装置或多个推断装置接收信号566。 [0072] 在一些示例中,第二推断水平确定548组件可以接收环境条件的指示568。例如,指示568可以指示设定的环境条件。在一些示例中,指示568可以在装置(例如,相机)在环境中的安装和/或部署时从用户处接收。例如,用户可以提供指示568,其基于图像传感器536的位置指示设定的环境条件。设定的环境条件可以取决于照明和姿态。例如,指示568可以指示图像传感器536的位置的主要对象照明。例如,面向窗口的相机可以主要捕获背光对象。 这种情形可能对推断要求更高以达到目标准确度。在这种情况下,用户可以提供低设定的照明水平的指示568。这可以使得具有更高准确度的更复杂的机器学习模型结构(例如,更深的网络)被选择以提供更高的准确度。在一些示例中,第二推断水平确定548组件可以基于(多个)照明水平确定和/或提供一个或多个设定照明水平(例如,IL1、IL2等)和/或设定的推断水平。 [0073] 在一些示例中,指示568可指示相对于图像传感器536(例如,相机)的设定的姿态水平。设定的姿态水平可以指示用于推断的对象姿态。例如,安装在门的侧面上的相机可以用于轮廓检测。在另一示例中,覆盖房间的相机可被用于推断正面和轮廓脸部。取决于指示 568,第二推断水平确定548组件可以确定和/或提供设定的姿态水平(例如,PL1、PL2等)。在一些示例中,第二推断水平确定548组件可以基于指示568确定设定的推断水平(例如,SL1、SL2、SL3等)。例如,第二推断水平确定548组件可以将指示568映射到设定的照明水平、设定的姿态水平和/或设定的推断水平(SL1、SL2、SL3等)。可以使用查找表、一个或多个规则和/或选择模型将该指示映射到该设定的照明水平、设定的姿态水平和/或设定的推断水平。 [0074] 在一些示例中,第二推断水平确定548组件可以利用误差反馈562。误差反馈562可被用于减少误差。例如,误差反馈可被用于减少部署期间的误差。在一些示例中,可以利用误差度量来减少训练中的误差。 [0075] 如图5的示例所示,第一推断水平确定546组件和/或第二推断水平确定548组件可执行如参考图1、图2、图3和/或图4所述的推断水平确定。例如,由第一推断水平确定546组件确定的推断水平和/或由第二推断水平确定548组件确定的该设定的推断水平可以是参考图1、图2、图3和/或图4所述的推断水平的示例。在一些示例中,可以基于接收到的指示 568来确定由第二推断水平确定548组件确定的设定的推断水平,并且可以基于感测数据确定由第一推断水平确定546组件确定的推断水平。 [0076] 机器学习模型结构控制550组件可以控制机器学习模型结构560。在一些示例中,机器学习模型结构控制550组件可以将设定的推断水平(例如,来自第二推断水平确定548组件)和/或推断水平(例如,来自第一推断水平确定546组件)映射到机器学习模型结构560的版本。在一些示例中,可以利用多达四个变型来控制机器学习模型结构。在其它示例中可以利用其它数量的变型。例如,一个变型可以是集合体选择558,另一变型可以是选择丢弃 552,另一变型可以是子网络选择554,并且另一变型可以是量化控制556。在一些示例中,集合体选择558可以是静态变形,而选择放弃552、子网络选择554和量化控制556可以是动态变形(例如,针对对环境条件的适配的动态更新)。在一些示例中,映射可以基于用于第一推断水平确定546和第二推断水平确定548的一个或多个预训练选择模型,可以基于查找表(例如,其可以基于训练值创建),和/或可以基于一个或多个规则。在训练期间,一个或多个选择模型和机器学习模型结构560可以经受变化的环境条件(例如,照明条件),并且一个或多个推断水平可以变化,直到达到准确度和功率消耗之间的平衡。 [0077] 在一些示例中,集合体选择558可以如参考图1、图2、图3和/或图4所描述的那样来操作。在一些示例中,选择丢弃552可以如参考图1、图2、图3和/或图4所描述的那样来操作。 在一些示例中,子网络选择554可以如参考图1、图2、图3和/或图4所描述的那样来操作。在一些示例中,量化控制556可以如参考图1、图2、图3和/或图4所描述的那样来操作。例如,选择丢弃552、子网络选择554、量化控制556和/或集合体选择558可以用于基于环境条件、基于一个或多个推断水平和/或基于误差反馈来在运行时560改变机器学习模型结构的各个方面。 [0078] 下面给出参考图5描述的组件的操作的一个示例。图像传感器536可捕获可由图像信号处理器538处理的一个或多个帧。可以将(多个)帧提供给编码器540。编码器540可格式化所述(多个)帧以用于推断。可以将(多个)格式化的帧提供给机器学习模型结构560以用于推断。机器学习模型结构560可以产生一个或多个推断结果564和对应的误差反馈562。图像传感器536和/或图像信号处理器538可产生照明值、一个或多个统计和/或直方图。 [0079] 照明水平确定544组件可从光传感器542、从图像传感器536和/或从图像信号处理器538获得照明值。在一些示例中,图像传感器536和/或图像信号处理器538可提供统计或直方图。基于来自光传感器542、来自图像传感器536和/或来自图像信号处理器538的输入,照明水平确定544组件可确定照明条件。照明条件可被提供给第一推断水平确定546。 [0080] 第一推断水平确定546组件可利用照明条件来确定一个或多个推断水平。在一些示例中,第一推断水平确定546组件可以从机器学习模型结构560接收误差反馈562。在一些示例中,第一推断水平确定546组件可利用选择模型来确定推断水平。在训练期间,可以训练选择模型以减少误差。在推断期间,选择模型可被用于减少误差。 [0081] 第二推断水平确定548组件可利用指示568来确定设定的推断水平。在一些示例中,第二推断水平确定548组件可以利用选择模型(例如,与第一推断水平确定546组件所利用的选择模型分开的选择模型)来确定该设定的推断水平。在训练期间,可以训练选择模型(例如,权重)以减少误差。例如,在训练期间可以利用误差或误差反馈来训练选择模型,以便从机器学习模型集合体中选择一个或多个机器学习模型。在推断期间,选择模型可被用于减少误差。 [0082] 机器学习模型结构控制550组件可基于设定的推断水平(例如,来自第二推断水平确定548组件)和/或推断水平(例如,来自第一推断水平确定546组件)控制(例如,调整和/或修改)机器学习模型结构560。机器学习模型结构控制550组件可利用选择丢弃552、子网络选择554、量化控制556和/或集合体选择558来控制机器学习模型结构560,以基于环境条件和/或推断水平来降低平均功率消耗。 [0083] 机器学习模型结构560可以产生对应于一个或多个推断结果564的误差反馈562(例如,(多个)误差值和/或(多个)置信度值)。误差反馈562可被提供给第一推断水平确定 546组件和/或第二推断水平确定548组件。 [0084] 本文描述的技术的一些示例可以是有益的。因为推断可能会消耗相对大量的功率和/或可能对电池消耗造成压力,所以本文描述的一些技术可用于基于环境条件和/或推断目标准确度来提高设备的效率。本文描述的一些技术可以在各种设备(例如,智能电话、打印机、平板设备、膝上型计算机、台式计算机、永远在线的相机、交通工具等)中实现。例如,本文描述的技术的一些示例可以有益于电池寿命受挑战的无人机、机器人和/或自动驾驶汽车。例如,多种设备可以受益于由本文描述的技术启用的低功率相机推断。 [0085] 如本文所使用的,术语“和/或”可以表示一个或多个项目。例如,短语“A、B和/或C”可以表示以下任何一种:A(没有B和C)、B(没有A和C)、C(没有A和B)、A和B(但没有C)、B和C(但没有A)、A和C(但没有B),或A、B和C全部。 [0086] 虽然本文描述了系统和方法的各种示例,但是系统和方法并不局限于这些示例。 可以在本公开的范围内实现本文描述的示例的变型。例如,可以省略或组合本文描述的示例的操作、功能、方面或要素。

相关技术
控制机器相关技术
机器学习相关技术
M·S·阿斯雷亚发明人的其他相关专利技术