用于音频理解的经学习的音频前端机器学习模型
背景技术:
1.本说明书涉及使用机器学习模型来处理音频。
2.机器学习模型的示例包括支持向量机、决策森林、线性模型和神经网络。
3.神经网络是采用一层或多层非线性单元来预测接收到的输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层——即,下一隐藏层或输出层——的输入。网络的每个层根据相应参数集的当前值从接收到的输入生成输出。
技术实现要素:
4.本说明书描述了一种在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统,所述计算机程序使用机器学习模型来处理音频信号——即,包括例如幅度值的音频样本序列的音频波形——以生成用于音频理解任务的输出。
5.音频理解任务能够是需要处理音频波形以生成表征音频波形的预测的任何任务。
6.能够实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。
7.执行音频理解任务的许多现有神经网络系统使用输入音频波形的梅尔滤波器组表示。梅尔滤波器组是模仿人类感知的固定的、设计的音频特征。然而,梅尔滤波器组受到手动设计的表示的基本限制的限制。本说明书描述了单个通用可学习前端,其在包括语音、音乐、音频事件和动物声音的宽范围的音频域上优于梅尔滤波器组,从而为音频提供通用学习前端。特别地,本说明书描述了一种轻量的、完全可学习的架构,其能够被用作梅尔滤波器组的直接替换器件。换句话说,该经学习的音频前端模型具有很少的参数,并且因为学习了这些参数,所以能够在训练期间和推断时以最小的计算开销得到改进的性能。
8.在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,主题的其他特征、方面和优点将变得显而易见。
附图说明
9.图1示出了示例音频处理系统。
10.图2是用于训练策略神经网络和嵌入神经网络的示例过程的流程图。
11.图3是用于在演示序列上训练策略神经网络的示例过程的流程图。
12.图4图示了使用演示序列训练策略神经网络。
13.各个附图中相同的附图标记和名称指示相同的元件。
具体实施方式
14.本说明书描述了一种在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统,该计算机程序使用机器学习模型来处理音频信号——即,包括例如幅度值的音频样本序列的音频波形——以生成用于音频理解任务的输出。
15.音频理解任务能够是需要处理音频波形以生成表征音频波形的预测的任何任务。
16.例如,如果输入是表示说出的话语的音频序列,即,音频波形,则音频理解任务能够是语音辨识,例如,具有为文本片段集合中的每一个定义分数的输出,每个分数表示该文本片段是话语的正确转录的估计似然性。
17.作为另一个示例,音频理解任务可以是关键词检索任务,其中,如果输入是表示说出的话语的音频序列,则输出能够指示在话语中是否说出特定词或短语(“热词”)。
18.作为另一个示例,音频理解任务能够是语言识别任务,其中,如果输入是表示说出的话语的音频序列,则由受训者神经网络生成的输出能够识别说出话语的自然语言。
19.音频理解任务也能够是对不是语音的音频执行的任务。这样的音频理解任务的示例包括:音乐辨识任务,所述音乐辨识任务接收音频序列作为输入并生成对在输入中表示的一段音乐的名称或其他属性的预测;动物分类任务,所述动物分类任务接收包括一个或多个动物声音的音频输入并生成对正在发出动物声音的动物类别的预测;音频事件分类任务,在所述音频事件分类任务中,输入是音频序列,是对在什么时间实例中针对多个不同声音中的每一个声音在音频序列内是活动的预测;等。
20.更一般地,虽然本说明书描述了在处理音频信号时能够替换梅尔滤波器组表示的前端,但是前端也能够代替地替换不同种类的输入信号——例如,地震数据或生理记录——的手动设计或其他学习的表示。
21.图1示出了示例音频处理系统100。音频处理系统100是在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例,其中,能够实现下面描述的系统、组件和技术。
22.音频处理系统100获得音频波形102作为输入。音频波形102是处于第一频率(“采样频率”)的音频样本序列,例如幅度值。
23.音频处理系统100使用经学习的音频前端模型110来处理音频波形102,以生成音频波形的特征表示112。
24.通常,音频前端模型110是机器学习模型,其被配置为应用具有多个滤波参数的经学习的滤波操作、具有多个池化参数的经学习的池化操作以及具有多个归一化参数的学习归一化操作,以生成音频波形102的特征表示112。
25.下面参考图2至4更详细地描述由音频前端模型110执行以生成特征表示112的操作。
26.系统100使用音频理解机器学习模型120来处理特征表示112。音频理解机器学习模型120是具有参数(“音频理解参数”)的机器学习模型,该机器学习模型被配置为处理特征表示112以针对一个或多个音频理解任务中的每个音频理解任务——例如,针对上述任务中的一个或多个任务或针对需要对音频波形102的内容进行预测的不同任务——生成相应的输出122。
27.音频理解模型120能够是任何适当的模型,例如,先前被配置为接收音频信号的梅尔滤波器组表示作为输入的模型。也就是说,作为特定示例,音频前端模型110能够在音频处理流水线中替换将音频波形映射到作为音频理解模型120的输入提供的音频波形的梅尔滤波器组表示的系统。
28.能够接收特征表示112作为输入的音频理解模型的特定示例包括:卷积神经网络,
例如,具有efficientnet架构的卷积神经网络;全连接神经网络,例如,具有用于多个任务中的每一个的相应线性层集合的多任务神经网络;递归神经网络,例如,基于长短期记忆(lstm)或门控递归单元(gru)的神经网络;或自注意神经网络,例如,变换器神经网络。
29.音频前端模型110被称为“经学习的”音频前端模型,因为利用音频理解模型120端到端地学习经学习的音频前端模型的参数的值,即,滤波、池化和归一化参数的值。换句话说,由音频前端模型110执行的操作是完全可区分的,从而允许音频前端模型110通过梯度下降与“后端”模型联合训练。这与硬编码的并且因此不能被微调以改进给定模型120在一个或多个音频处理任务的给定集合上的性能的其他突出表示——例如,梅尔滤波器组表示——不同。
30.具体地,系统100包括训练引擎150,其在用于一个或多个音频理解任务中的每一个的相应训练数据上训练音频前端模型110和音频理解模型120。
31.给定任务的训练数据包括训练音频输入集合,并且对于每个音频输入,包括给定任务的目标输出,该目标输出应该由音频理解模型120通过处理由音频前端模型110生成的训练音频输入的特征表示来生成。
32.训练引擎150通过梯度下降在给定任务的训练数据上训练模型110和120,并且具体地,通过音频理解模型120并且向音频前端模型110反向传播对于给定任务的损失函数的梯度来训练音频前端模型110。损失函数能够是用于任务的任何适当的损失函数,其在给定用于给定任务的训练数据中的目标输出的情况下测量由音频理解模型120对给定任务的性能,例如,如果音频理解任务是分类任务则是分类损失,或者如果音频理解任务是回归任务则是回归损失。具体地,系统能够训练模型110和120以通过任何适当的基于梯度下降的技术(例如,随机梯度下降、adam优化、rmsprop优化等)来确定音频理解模型120的参数θ和音频前端模型110的参数ψ的训练值,以最小化以下:
33.argmin
θ,ψe(x,y)∈d
l(g
θ
(f
ψ
(x))),y),
34.其中,x是从训练数据集d采样的训练音频输入,y是针对训练输入的目标输出,f
ψ
(x)是由模型110通过处理训练音频输入x生成的表示,g
θ
(f
ψ
(x))是由模型120通过处理该表示生成的输出,并且l是针对给定任务的损失函数。
35.在一些情况下,训练引擎150能够在一个或多个任务上与原始后端模型联合预训练音频前端模型110,并且然后在不同任务上利用新后端模型训练音频前端模型110,例如,同时保持模型110的参数的预训练值固定并更新新后端模型的参数或更新新后端模型的参数,同时还微调模型110的参数的预训练值。例如,这能够在存在可用于原始后端模型执行的一个或多个任务的大量训练数据,同时仅有限量的训练数据可用于新后端模型执行的任务的情况下完成。
36.图2是用于处理音频输入的示例过程200的流程图。为方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,适当编程的音频处理系统——例如,图1的音频处理系统100——能够执行过程200。
37.系统获得音频波形(步骤202)。音频波形是第一频率的音频样本序列。也就是说,音频波形是在t个第一时间步中的每一个处具有相应标量音频样本的序列。换句话说,音频波形是在采样频率fs hz下可用的t个样本的一维波形。
38.系统使用学习的音频前端模型处理音频波形以生成音频波形的特征表示(步骤
204)。
39.特征表示包括处于第二频率的特征序列。通常,第二频率低于第一频率。
40.更具体地,经学习的音频前端的操作能够被表示为具有参数的函数,所述参数已经通过训练经学习的音频前端而被学习,并且将音频波形从一维空间映射到2维特征空间,即,使用经学习的参数将音频波形中的t个标量值映射到2维m
×
n表示,其中,m表示时间帧(“特征”)的数量,并且n表示该表示的每个时间帧(“特征”)中的特征通道的数量。因为第二频率通常将低于第一频率,所以时间帧的数量m通常将小于音频波形中的音频样本的数量t。
41.下面参考图3和图4更详细地描述使用经学习的音频前端模型处理音频波形以生成特征表示。
42.系统使用具有多个音频理解参数的音频理解机器学习模型来处理特征表示,以生成如上所述的一个或多个音频理解任务中的每个音频理解任务的相应输出(步骤206)。
43.图3是用于使用经学习的音频前端模型生成音频波形的特征表示的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,适当编程的音频处理系统——例如,图1的音频处理系统100——能够执行过程300。
44.系统将具有多个滤波参数的经学习的滤波操作应用于音频波形,以生成包括第一频率的滤波特征序列的滤波表示(步骤302)。
45.在高级别,经学习的滤波操作使音频波形通过一组带通滤波器,随后是非线性的、以原始的采样频率fs操作。
46.换句话说,滤波特征序列包括音频波形中的每个第一时间步的相应的滤波特征,并且因此,序列中的每个滤波特征在音频波形中具有对应的音频样本。
47.通常,每个滤波特征包括用于多个通道中的每个通道的相应值。也就是说,经学习的滤波操作将输入波形中的t个标量音频样本映射到t个滤波特征,每个滤波特征具有n个特征通道,其中n大于一。
48.为了生成滤波特征的任何给定通道的值,系统将一个或多个一维卷积滤波器应用于音频波形以生成用于该通道的滤波特征的值。
49.在一些实施方式中,对于每个通道,系统能够将具有步幅1的单个一维卷积滤波器应用于音频波形,以生成用于该通道的滤波特征的值。
50.作为特定示例,每个卷积滤波器能够是复值滤波器,并且系统能够通过执行满足以下的操作来生成用于第n个通道的滤波特征的t个值fn:
[0051][0052]
其中x是音频波形,是通道n的复值滤波器,并且*运算表示步幅为1的卷积。应用平方模运算符将卷积的输出带回实值域。
[0053]
在一些其他实施方式中,对于每个通道,系统能够将具有步幅1的多个一维卷积滤波器应用于音频波形,以生成用于该通道的滤波特征的值。
[0054]
作为特定示例,对于每个通道,系统能够将多个一维卷积滤波器应用于音频波形以生成多个卷积值,并且然后组合卷积值以生成用于该通道的值。
[0055]
更具体地,系统能够应用总共2n个实值一维滤波器,以通过执行满足以下的操作
来生成用于第n个通道的滤波特征的t个值fn:
[0056][0057]
其中,和是用于计算第n个通道的值的总共2n个实值一维滤波器中的两个。例如,和能够是单个复值一维滤波器的实部和虚部。以该方式应用总共2n个滤波器能够生成与使用上述复值滤波器生成的输出等效的输出,而不需要系统显式地操纵复数。
[0058]
在一些实施方式中,系统不对在训练期间学习的一维滤波器的值(“系数”)施加任何约束,即,一维滤波器是标准1d卷积。例如,系统能够初始化滤波器的系数以近似梅尔滤波器组的计算,并且然后在训练期间通过反向传播调整滤波器,而不对滤波器中的任何系数施加任何约束。
[0059]
在这些实施方式中的一些中,为了防止训练期间的不稳定性,系统在计算卷积之前对滤波器系数应用归一化,例如l2归一化。
[0060]
在一些实施方式中,系统确实对一维滤波器的系数施加约束。特别地,系统能够要求多个一维卷积滤波器中的每一个是gabor滤波器。
[0061]
通常,通过利用正弦信号调制高斯核来产生gabor滤波器。形式上,具有长度w的gabor滤波器通过其中心频率ηn和逆带宽σn参数化如下:
[0062]
对于t=-w/2,...,w/2,
[0063]
也就是说,上面的等式定义了长度为w的gabor滤波器的w系数。因此,gabor滤波器的频率响应是以频率ηn为中心并且带宽为1/σn的高斯,两者都以[-1/2,1/2]中的归一化频率单位表示。
[0064]
对于n个gabor滤波器中的每一个,系统仅需要学习两个参数值(中心频率和逆带宽),并且学习每个滤波器的这两个参数值允许学习一组平滑的准解析带通滤波器,其具有可控的中心频率和带宽。
[0065]
因此,gabor滤波器具有比归一化1d卷积显著更少的参数。例如,长度为w的n个gabor滤波器完全由2n个参数指定,即,相对于标准1d卷积的w
×
n,中心频率为n,带宽为n。作为特定示例,当使用25ms的窗口长度并且以16khz的采样速率操作时,则w=401个样本,并且基于gabor的滤波考虑比其无约束替代方案少200倍的参数。这能够使得训练的计算强度显著降低,并且显著减少经学习的前端的存储器占用,而不降低前端的性能。
[0066]
为了应用gabor滤波器,系统在范围t=-w/2,...,到w/2上获得n个gabor滤波器中的每一个的脉冲响应,并且然后将这些脉冲响应卷积到输入波形。
[0067]
可替代地,系统能够应用使用2n个实值滤波器的gabor滤波器而不是如上所述的n个复值gabor滤波器,即,通过拆分gabor滤波器的实部和虚部,将输入与每一个独立地卷积,并且然后使用平方l2池化合并结果。
[0068]
在一些情况下,为了辅助稳定训练,系统将n个gabor滤波器的中心频率限幅到预定义范围(例如[0,1/2])内,使得它们位于频率范围的正部分中。系统还能够可选地将中心频率约束在预定义范围——例如范围——内,使得频率响应的半峰
全宽在1/w和1/2内。
[0069]
系统将具有多个池化参数的经学习的池化操作应用于滤波表示,以生成包括第二频率的池化特征序列的池化表示(步骤304)。每个池化特征具有针对多个通道中的每个通道的相应值。
[0070]
在高级别,经学习的池化操作抽取由滤波表示所表示的信号,以减少滤波表示的时间分辨率。
[0071]
更具体地,系统通过具有低通滤波器的按深度卷积来实现经学习的池化操作。因此,每个输入通道与一个低通滤波器相关联。
[0072]
换句话说,对于每个通道,系统通过以大于一的步幅将用于该通道的相应经学习的低通滤波器应用于该通道的滤波特征中的值来执行经学习的池化操作,以生成具有第二频率的通道的池化值集合。通过使步幅大于一,系统减少了每个通道中的值的数量,从而减少了滤波表示的时间分辨率。步幅的值能够是超参数
[0073]
在一些情况下,系统参数化用于每个通道的相应经学习的低通滤波器以具有高斯脉冲响应。也就是说,对于通道n具有长度w的经学习的低通滤波器能够满足:
[0074]
对于t=-w/2,...,w/2,
[0075]
因此,系统能够学习每通道低通池化函数,同时向前端模型添加仅n个参数。
[0076]
系统将具有多个归一化参数的经学习的归一化操作应用于池化表示以生成特征表示(步骤306)。
[0077]
在高级别,经学习的归一化操作对池化表示进行归一化,并且然后将非线性应用于池化表示来减小池化表示的动态范围。
[0078]
特别地,对于每个池化特征的多个通道中的每个通道的每个相应值,系统根据归一化参数中的一个或多个归一化参数对相应值进行归一化,并且然后根据归一化参数中的一个或多个将非线性应用于归一化的相应值,以生成特征表示中的对应值。
[0079]
作为特定示例,系统能够通过将经学习的偏移添加到归一化值以生成总和并使用经学习的指数对该总和应用压缩来将非线性应用于归一化的相应值。例如,系统能够学习每个通道的相应偏移和相应指数。
[0080]
作为另一个特定示例,对于每个池化特征的多个通道中的每个通道的每个相应值,系统能够使用在序列中在池化特征之前的任何池化特征中的通道的值的指数移动平均值来归一化相应值。指数移动平均值由相应的平滑系数控制。
[0081]
例如,具有索引t的特征中的通道n的值f(t,n)的指数移动平均值m(t,n)能够被递归地定义为:
[0082]
m(t,n)=(1-sn)m(t-1,n) snf(t,n),
[0083]
其中sn是通道n的平滑系数。
[0084]
因此,经学习的归一化操作的特定示例能够满足:
[0085][0086]
其中,ε是常数值,αn是用于通道n的归一化的经学习的指数,δn是通道n的经学习的
偏移,以及rn是用于通道n的经学习的指数。因此,在该特定示例中,系统学习用于n个通道中的每个通道的sn、αn、δn和rn的相应值。
[0087]
图4图示了经学习的音频前端模型的操作的示例。
[0088]
如图4所示,首先使用经学习的滤波操作来处理具有t个音频样本的音频波形102以生成滤波表示,即,包括各自具有n个通道的t个滤波特征的滤波特征序列。经学习的滤波操作首先将长度为w的n个经学习的gabor滤波器410应用于输入音频波形120,并且然后将平方模运算符240应用于输出生成滤波表示。
[0089]
可替代地,系统能够应用使用2n个实值滤波器的gabor滤波器而不是如上所述的n个复值gabor滤波器,即,通过拆分gabor滤波器的实部和虚部,将输入与每一个独立地卷积,并且然后使用平方l2池化合并结果。
[0090]
然后使用经学习的池化操作来处理滤波表示以生成池化表示。经学习的池化操作将相应的高斯低通滤波器430应用于滤波表示的每个通道,以减少滤波表示的时间分辨率并生成池化表示。
[0091]
然后使用经学习的归一化操作来处理池化表示以生成特征表示。经学习的归一化操作应用上述spcen操作440以生成特征表示。
[0092]
然后能够将特征表示提供给下游音频处理神经网络以进行处理,如上所述。
[0093]
本说明书结合系统和计算机程序组件使用术语“被配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统,是指系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使系统执行操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,是指包括指令的一个或多个程序,所述指令在由数据处理装置执行时使装置执行操作或动作。
[0094]
本说明书中描述的主题和功能操作的实施例能够在数字电子电路系统中、在有形体现的计算机软件或固件中、在计算机硬件——包括本说明书中公开的结构及其结构等价物,或者它们中的一个或多个的组合——中实现。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,在有形非暂时性存储介质上编码的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。可替代地或附加地,程序指令能够被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置以供数据处理装置执行。
[0095]
术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置还能够是或进一步包括专用逻辑电路系统,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还能够可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0096]
计算机程序,其也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码,能够以任何形式的编程语言编写,包括编译或解释语言,或者声明或过程语言;并且它能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不必与文件系统中的文件相对应。程序能够被存
储在保存其他程序或数据的文件的一部分——例如在标记语言文档中存储的一个或多个脚本——中、存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件——例如存储一个或多个模块、子程序或代码部分的文件——中。计算机程序能够被部署为在一个计算机上或在位于一个站点处或跨多个站点分布并通过数据通信网络互连的多个计算机上执行。
[0097]
在本说明书中,术语“数据库”广泛地用于指代任何数据收集:数据不需要以任何特定方式被结构化,或者根本不需要被结构化,并且它能够被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库能够包括多个数据收集,每个数据收集可以被不同地组织和访问。
[0098]
类似地,在本说明书中,术语“引擎”被广泛地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为在一个或多个位置中的一个或多个计算机上安装的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,多个引擎能够在相同的一个或多个计算机上被安装和运行。
[0099]
本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也能够由专用逻辑电路系统执行,例如fpga或asic,或由专用逻辑电路系统和一个或多个编程的计算机的组合执行。
[0100]
适合于执行计算机程序的计算机能够基于通用或专用微处理器或两者,或者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或实施指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路系统补充或并入专用逻辑电路系统中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如,磁盘、磁光盘或光盘,或者可操作地被耦合以从一个或多个大容量设备接收数据或将数据传输到一个或多个大容量设备或两者兼有。然而,计算机不需要具有这样的设备。此外,计算机能够被嵌入在另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如,通用串行总线(usb)闪存驱动器,仅举几例。
[0101]
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cd rom和dvd-rom盘。
[0102]
为了提供与用户的交互,能够在计算机上实现本说明书中描述的主题的实施例,该计算机具有用于向用户显示信息的显示设备,例如crt(阴极射线管)或lcd(液晶显示器)监视器,以及用户能够用来向该计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。其他种类的设备也能够被用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声、语音或触觉输入。另外,计算机能够通过以下来与用户交互:向由用户使用的设备发送文档并从由用户使用的设备接收文档;例如,通过响应于从web浏览器接收到请求而向用户的设备上的web浏览器发送网页。此外,计算机能够通过向个人设备——例如,正
在运行消息传送应用的智能电话——发送文本消息或其他形式的消息并且继而从用户接收响应消息来与用户交互。
[0103]
用于实现机器学习模型的数据处理装置还能够包括例如,专用硬件加速器单元,其用于处理机器学习训练或生产的公用和计算密集型部分,即推断、工作负载。
[0104]
能够使用机器学习框架,例如,tensorflow框架、microsoft cognitive toolkit框架、apache singa框架或apache mxnet框架,来实现和部署机器学习模型。
[0105]
本说明书中描述的主题的实施例能够在计算系统中实现,该计算系统包括后端组件,例如,作为数据服务器;或者包括中间件组件,例如,应用服务器;或者包括前端组件,例如,具有用户能够通过其与本说明书中描述的主题的实施方式交互的图形用户界面、web浏览器或应用的客户端计算机;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信——例如通信网络——互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如,互联网。
[0106]
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并通常通过通信网络交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将例如html页面的数据传输到用户设备,例如,用于向与充当客户端的设备交互的用户显示数据和从其接收用户输入的目的。能够在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
[0107]
虽然本说明书包含许多具体实施方式细节,但是这些不应当被解释为对任何发明的范围或可以要求保护的范围的限制,而是应当解释为可以特定于特定发明的具体实施例的特征的描述。在本说明书中在分开实施例的上下文中描述的某些特征也能够在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也能够分开地或以任何合适的子组合在多个实施例中实现。此外,尽管特征在上文可以被描述为以某些组合起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下能够从组合中被删除,并且所要求保护的组合可以涉及子组合或子组合的变型。
[0108]
类似地,虽然在附图中以特定次序描绘了并且在权利要求中记载了操作,但是这不应当被理解为要求以所示的特定次序或依次次序执行这些操作或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分开不应当被理解为在所有实施例中都需要这种分开,并且应当理解到,所描述的程序组件和系统通常能够被一起集成在单个软件产品中或封装到多个软件产品中。
[0109]
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作能够以不同的次序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不必然需要所示的特定次序或依次次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。