[0047] 在至少一个实施例中,DNN调试程序110a、110b可以采用启发法(即,采用从先前的DL模型设计/代码选择中断条件的过去经验,并且将任何新接收到的DL模型设计/代码与具有相应的中断条件的先前接收到的DL模型设计/代码进行比较,以及通过常识和比较处理为当前DL模型设计/代码确定可能的中断条件),为DL模型设计/代码采样中断条件的代表性子集。
[0048] 在至少一个实施例中,用户可以基于用户对DL的理解以及可能被推荐进行调试的层,为接收到的DL模型设计/代码手动选择中断条件。在DNN调试程序110a、110b向用户通知已经在接收到的DL模型设计/代码中识别了全局调试标志、并且用户在经由对话框被提示是否应该自动进行调试时点击了例如“否”按钮之后,由DNN调试程序110a、110b提供的指示可以包括有关如何为接收到的DL模型设计/代码选择相应的中断条件的指示。
[0049] 在至少一个实施例中,如果用户决定调试不存在中断条件的DL模型设计/代码,则DNN调试程序110a、110b可以通过从用户获取中断条件来选择或添加调试点。
[0050] 在一些实施例中,如果不存在中断条件,则用户可以编写用于中断条件的设计/代码(即,中断条件设计/代码),并且将中断条件设计/代码添加到DL模型设计/代码。然后,DNN调试程序110a、110b可以在学习任务特定层上放置调试点。
[0051] 继续前面的示例,用户先前将中断条件定义为验证准确度大于95%。这样,DNN调试程序110a、110b为DL模型代码A选择先前用户定义的中断条件。
[0052] 然后,在210处,DNN调试程序110a、110b确定是否存在标准任务和模型架构。DNN调试程序110a、110b可以采用用户设备(例如,用户计算机102)上的软件程序108将DL模型设计/代码的架构和/或预期任务与先前确定的标准模型和/或架构进行比较,以确定对于接收到的DL模型设计/代码是否存在标准架构和/或任务。对于具有标准架构和/或任务的DL模型设计/代码,所推荐的用于调试的特定神经网络层可能已经已知,并且基于预先定义的启发法被选择。这样,DNN调试程序110a、110b可以在调试DL模型设计/代码时遇到较少的困难。在图像分类时,例如,DNN调试程序110a、110b可以确定DL模型设计/代码架构是标准的,并且DNN调试程序110a、110b基于先前的训练数据可以容易地确定较高卷积层可以学习抽象形状,因此相比于学习基本形状(例如线条和边缘)的较低层可能需要调试。
[0053] 基于先前的训练数据,DNN调试程序110a、110b可以周期性地构建或更新用来为标准DL模型设计/代码架构和任务选择调试层的启发法。
[0054] 如果DNN调试程序110a、110b在210处确定存在标准模型架构和任务,则DNN调试程序110a、110b在212处采用知识库214来标记调试层。基于从具有标准任务和相应层的先前标准模型架构导出的训练数据,知识库214可以包括(i)用于标准任务(例如,图像分类、语言建模)的标准模型架构的列表,以及(ii)对于用于标准任务的每个标准模型架构(即,标准任务-架构组合),可以被标记为调试的层的相应列表。当在DNN调试程序110a、110b中接收到这样的标准任务-架构组合作为输入时,DNN调试程序110a、110b可以基于知识库214内包括的列表自动标记用于调试的正确层。通过标记调试层,用户可以识别正在阻碍接收到的DL模型设计/代码的学习(或训练)过程的一个或多个层。因此,DNN调试程序110a、110b可以对于这些层应用修复和/或向用户提供可行的洞察。
[0055] 继续前面的示例,如果DNN调试程序110a、110b采用软件程序108将DL模型代码A与先前分析的具有标准架构和/或预期任务的DL模型设计/代码进行比较,并且确定DL模型代码A包括标准架构和任务(例如图像分类),则DNN调试程序110a、110b将遵从(defer to)知识库214来识别调试层。
[0056] 然而,如果DNN调试程序110a、110b在210处确定不存在标准任务和/或模型架构,则DNN调试程序110a、110b在216处训练DL模型设计/代码。对于与接收到的DL模型设计/代码相关联的非标准任务和/或模型架构,DNN调试程序110a、110b可能在基于与该架构和任务相关联的先前训练数据和预先定义的启发法(例如,如数据集、网络或两者的过去经验)识别要在接收到的DL模型设计/代码上进行调试的层方面遇到困难。因此,DNN调试程序110a、110b可以使用两个数据集:(1)所创建的调试集(M1);(2)较小训练集(M2),用于训练接收到的DL模型设计/代码。DNN调试程序110a、110b可以将所创建的调试集(M1)与训练集(M2)分开,以避免对DL模型设计/代码的过度拟合(overfit),从而导致在训练接收到的DL模型设计/代码时的更高的准确度。
[0057] 继续先前的示例,DNN调试程序110a、110b基于来自软件程序108的发现确定DL模型代码A包括非标准任务和/或模型架构。因此,DNN调试程序110a、110b采用所创建的调试集和较小训练集两者来训练DL模型代码A,并且识别DL模型代码A的调试层。
[0058] 然后,在218处,计算给定的权重。通过应用机器学习(ML)算法(例如,梯度下降、RMSProp优化器、Adam、随机(Stochastic)),DNN调试程序110a、110b可以从两个数据集(即,所创建的调试集(M1)和较小训练集(M2))计算与接收到的DL模型设计/代码的每个调试层相关联的权重。通过采用梯度下降规则,例如,分别计算与每个数据集相关联的模型参数的值的集合,以基于凸函数将给定函数最小化为局部最小值。输出可以是基于所创建的调试集或较小训练集的两组给定权重。
[0059] 另外,DNN调试程序110a、110b然后可以将与所创建的调试集和较小训练集相关联的所计算的权重的集合存储到具有对应的DL模型设计/代码和预期任务的权重存储库220(例如,数据库114)。
[0060] 在至少一个实施例中,权重存储库可以是快照,在该快照中存储所计算的权重,直到完成层的调试为止。因此,用户可以利用这些快照加载DL模型设计/代码,并且继续训练DL模型设计/代码。
[0061] 在至少一个实施例中,基于算法(例如,MODE算法),DNN调试程序110a、110b可以随着时间设置调试点。在DL中,可能存在即停即用(stop and play)功能,其中可以保存并且加载DL模型和相应的权重,以基于任何用户指定的约束或确定(例如,在一定量的时期(epoch)之后的中断条件,对于验证准确度的较低阈值)继续运行多个时期(运行)。
[0062] 继续前面的示例,DL模型代码A包括三层:层1、层2和层3。然后,DNN调试程序110a、110b分别分析DL模型代码A的每个层。首先,DNN调试程序110a、110b采用梯度下降规则,针对与DL模型代码A相关联的所创建的调试集(即,调试集A)和与DL模型代码A相关联的较小训练集(较小训练集A)计算以下给定权重:
[0063] 层1:调试集A(M1A)=0.49;较小训练集A(M2A)=0.31
[0064] 层2:调试集A(M1A)=0.29;较小训练集A(M2A)=0.54
[0065] 层3:调试集A(M1A)=0.77;较小训练集A(M2A)=0.48
[0066] 然后,将每个层中针对每个集而计算的给定权重保存在权重存储库220中,直到确定了层权重相关性为止。此后,从权重存储库中永久删除每个层中针对每个集的对应给定权重,并且DNN调试程序110a、110b的知识库214仅保留标记调试层的结果。
[0067] 然后,在222处,DNN调试程序110a、110b确定层权重相关性是否减小。通过采用计算来自复杂数据集的值之间的相关性(例如,关联性)的算法(例如,皮尔逊相关性系数、Kullback-Leibler(KL)散度、互信息、距离相关性、最大信息系数),DNN调试程序110a、110b可以在与M1的每个层相关联的权重(即,第一组给定权重)和与M2的每个层相关联的相应权重(即,第二组给定权重)之间执行相关性分析,以确定与每个层相关联的权重是否减小。然后,算法可以针对每组给定权重计算层权重相关性值(即,与第一组给定权重相关联的第一层权重相关性值,以及与第二组给定权重相关联的第二层权重相关性值)。然后,可以将两个层权重相关性值进行比较,以针对每个层确定M1和M2之间的差。然后,DNN调试程序110a、110b可以确定层权重相关性值是否从M1减小到M2(例如,层权重在M1处为0.3,然后在M2处为0.19),于是层权重相关性(即,层权重相关性值的两个集合之间的比较,或与层相关联的总/组合层权重相关性值)将减小。
[0068] 在至少一个实施例中,DNN调试程序110a、110b可以通过将M1和M2两者的平均层权重相关性值(例如,通过将与M1和M2相关联的值相加并除以2来计算M1和M2两者的平均值)与先前确定的阈值(例如,在0到1范围内默认为0.5,在0到10范围内默认为5,在0到100范围内默认为50,或者在某种形式归一化范围内默认为中值)进行比较来确定层权重相关性是否为低。如果平均层权重相关性值小于阈值,则可以将层权重相关性识别为低。然而,如果平均层权重相关性值等于或高于阈值,则可以将层权重相关性识别为高。
[0069] 在至少一个实施例中,DNN调试程序110a、110b可以采用M1和M2两者中的每个的层权重相关值的中值来确定M1和M2两者的组合层权重相关性值。然后可以将组合层权重相关性与阈值进行比较,以确定层权重相关性是低还是高。
[0070] 如果DNN调试程序110a、110b在222处确定层权重相关性没有减小(即增加或相等),则DNN调试程序110a、110b结束。增加或高的层权重相关性可能指示与来自每个数据集(M1和M2)的权重相对应的层正在按预期执行,并且不推荐对DL模型设计/代码的该特定层进行调试。
[0071] 另外,相等的层权重相关性可能指示与来自每个数据集(M1和M2)的权重相对应的层正在按预期执行,并且不推荐对DL模型设计/代码的该特定层进行调试。
[0072] 继续先前的示例,DNN调试程序110a、110b通过将M1A与M2A进行比较然后确定给定权重是否从M1A增加至M2A或者给定权重相等来确定层权重相关性。这样,层2(调试集A(M1A)=0.29;较小训练集A(M2A)=0.54)具有层权重相关性的增加,因此DNN调试程序110a、110b将确定不推荐对层2进行调试。
[0073] 然而,如果DNN调试程序110a、110b在222处确定层权重相关性减小,则在224处将DL模型设计/代码的相应层添加到调试列表。如果层权重之间没有相关性,或者层权重之间的相关性低或减小,则将与层权重相对应的层添加到调试列表。调试列表可以由DNN调试程序110a、110b编译或生成,并且可以包括描述要调试的层的目录(例如,由相关联的项、表、图形的连续列表来表示)。调试列表可以包括用于识别层的名称或编号、以及层的任何相关联的信息(例如,层权重相关性值,该层中发生的情况的描述,与调试集和/或较小训练集相关联的数据)。
[0074] 另外,DNN调试程序110a、110b然后可以将相应的层标记为“要调试”(即,调试点),以将适当的调试块附连(或连接)到相应的层。这样,调试点可以指示应该何时执行调试。可以基于中断条件找到调试点,该中断条件可以使用不同的参数(例如,验证准确度、时期的数量)来定义。然后,DNN调试程序110a、110b可以基于所确定的中断条件向用户呈现输出(例如,调试列表、具有调试块的DL模型设计/代码)。例如,在DL模型代码中,文本数据的输出包括红色文本以指示高关注值,其中从每个分段解释有用的信息,例如对行中位置的敏感性、引用内的文本和DL模型代码的文本数据中的注释/引用。在另一个示例中,在DL模型设计中,DNN调试程序110a、110b接收了自行车的输入图像,并且由神经网络生成的其他图像指示层中的各种过滤器将什么确定为图像的推荐特征以将图像分类为自行车。基于大多数过滤器,输出示出轮胎被视为自行车的推荐特征。
[0075] 当DNN调试程序110a、110b确定满足所选择的中断条件时,可以向用户示出调试结果。当满足时期(epoch)断点或验证准确度时,可以触发DNN调试程序110a、110b以向用户呈现调试输出。调试输出还可以包括要应用于调试层(即调试点)的修复,和/或对用户的可行的洞察,用户可以实施该洞察以修复所识别的调试点。
[0076] 例如,DNN调试程序110a、110b可以呈现在层A和层B之间添加随机失活(dropout)层以提高正则化(regularization)的选项,或者在“e”个时期(epoch)之后衰减学习率以进一步减少损失,作为对所识别的调试点的可行的洞察。
[0077] 继续先前的示例,DNN调试程序110a、110b通过将M1A与M2A进行比较然后确定给定的权重是否从M1A减小至M2A来确定层权重相关性。这样,层1(调试集A(M1A)=0.49;较小培训集A(M2A)=0.31)和层3(调试集A(M1A)=0.77;较小培训集A(M2A)=0.48)减小,因此DNN调试程序110a、110b将层1和层3添加到调试列表。此外,层1和层3将被标记为“要调试”,并且调试块A1和A3将分别被附接到这些层。
[0078] 在另一个实施例中,当仅在调试集上训练DL模型设计/代码(即,没有来自训练数据集的较小训练集)时的层权重与当在较大训练集上训练DL模型设计/代码时的层权重之间的相关性低,于是将相应的层添加到调试列表。
[0079] 在至少一个实施例中,DNN调试程序110a、110b可以在调试数据库(例如,数据库114)中临时存储被标记为“要调试”的相应层(即,调试点)以及相应层在调试列表上的条目,直到相应层被相关联的软件程序108或应用程序接口(API)完全调试为止。然后,相关联的软件程序108(或API)可以删除相应层以及该相应层在调试列表上的条目。
[0080] 在一些实施例中,DNN调试程序110a、110b不存储被标记为“要调试”的相应层(即,调试点)以及相应层在调试列表上的条目。相反,相应层上的“要调试”标记可能是供用户确定DL模型设计/代码中的哪些层必须被修复的唯一标识符。
[0081] 在本实施例中,适当的调试块可能取决于调试点。在至少一个实施例中,对于卷积神经网络(CNN),可以采用对卷积层进行转置(transpose)的去卷积调试块来过滤可视化(visualization)。在另一个实施例中,对于密集的神经网络,可能必须通过采用一种类型的人工神经网络以无监督方式学习有效的数据编码(类似于自动编码器)来重构输入。在一些实施例中,对于递归神经网络(RNN),可以采用隐马尔可夫模型。
[0082] 在本实施例中,用户可以在DNN调试过程200中的任意点处选择将调试模式“接通”(即,活动模式)或“断开”(即,非活动模式)。这样,用户可以确定是否识别正在阻碍DL模型设计/代码的学习过程的层。例如,在画面的底部,存在“改变调试模式”按钮。如果用户点击“改变调试模式”按钮,则DNN调试程序110a、110b将经由对话框提示用户,以确认用户是否打算利用位于对话框底部的“是”或“结束”按钮、或者“否”或“取消”按钮来结束DNN调试程序110a、110b。如果用户选择“是”或“结束”按钮,则DNN调试程序110a、110b通知用户DNN调试过程200已经终止,并且DNN调试程序110a、110b已经变为“断开”。然而,如果用户点击“否”或“取消”按钮,则DNN调试程序110a、110b可以继续进行DNN调试过程200。在至少一个实施例中,一旦用户点击“改变调试模式”按钮,就可以暂时挂起任何当前的DNN调试过程200,并且可以暂停DNN调试程序110a、110b,直到用户确认是否改变调试模式为止。这样,如果DNN调试程序110a,110b当前“接通”并且处于识别用于调试的一个或多个层的处理中,则该当前DNN调试过程200挂起,并且DNN调试程序110a、110b暂停,直到用户确认是继续还是“断开”DNN调试程序110a、110b。然而,如果当用户点击“改变调试模式”按钮时,DNN调试程序110a、110b当前“断开”,则没有当前的DNN调试过程200挂起。这样,如果用户选择“接通”DNN调试程序110a、110b,则DNN调试程序110a、110b将通过接收新的DL模型设计/代码来开始。
[0083] 在本实施例中,如果用户“断开”DNN调试程序110a、110b,而DNN调试程序110a、110b当前正在识别接收到的DL模型设计/代码中的要调试的一个或多个层,则DNN调试程序
110a、110b可以在该点处结束DNN调试过程200,并且可以将在该点处识别的一个或多个层呈现给用户。可以不执行与DL模型设计/代码相关联的其他层的进一步分析,直到用户“接通”DNN调试程序110a、110b为止。
[0084] 在另一实施例中,如果用户确认“断开”DNN调试程序110a、110b,而DNN调试程序110a、110b当前正在识别接收到的DL模型设计/代码中的要调试的一个或多个层,DNN调试程序110a、110b可以向用户提示关于当前分析的DL模型设计/代码的状态更新(例如,完成百分比,为完成推荐的时间量,关于DNN调试程序110a、110b是否应继续分析的推荐)。然后,可以提示用户(例如,经由对话框)以指示用户是否希望DNN调试程序110a、110b继续分析当前分析的DL模型设计/代码,然后改变调试模式,或在该点处结束DNN调试过程200。如果用户决定在当前点处结束DNN调试过程200,则可以再次提示用户(例如,经由对话框)以保存当前分析的DL模型设计/代码以在以后的日期完成,或者结束而不保存当前分析的DL模型设计/代码。
[0085] 在本实施例中,DNN调试程序110a、110b可以在识别调试层和调试点以及如何拆分训练集以创建调试集时考虑用户反馈。可以实施用户反馈以改进与DNN调试程序110a、110b相关联的训练过程的调试。因此,DNN调试程序110a、110b可以能够提高调试层和调试点的自动识别的准确度。
[0086] 计算机的功能可以通过DNN调试程序110a、110b来改进,因为DNN调试程序110a、110b可以提供更高级别的调试并且具有最少的错误(如果有的话)。DNN调试程序110a、110b可以自动确定并且引入用于调试的一个或多个反向操作层,自动识别调试层(或调试点),通过考虑网络和/或数据集的性质来自动创建调试集,以及自动识别合适的调试点。DNN调试程序110a、110b可以进一步基于调试点结果向用户提供可行的洞察(例如,合适的调试层)。用户还可以过滤或定制调试点结果。DNN调试程序110a、110b还可以最小化(如果不能消除)在识别调试的错误时可能由于人工干预而发生的任何错误。
[0087] 可以理解,图2仅提供了一个实施例的图示,并不暗示关于可以如何实现不同实施例的任何限制。可以基于设计和实现要求对所描绘的实施例进行许多修改。
[0088] 图3是根据本发明的说明性实施例的图1中描绘的计算机的内部组件和外部组件的框图900。应该理解,图3仅提供了一种实现方式的图示,并不暗示关于可以实现不同实施例的环境的任何限制。可以基于设计和实现要求对所描绘的环境进行许多修改。
[0089] 数据处理系统902、904代表能够执行机器可读程序指令的任何电子设备。数据处理系统902、904可以代表智能电话、计算机系统、PDA或其他电子设备。可以由数据处理系统902、904表示的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、网络PC、小型计算机系统以及包括任何上述系统或设备的分布式云计算环境。
[0090] 用户客户端计算机102和网络服务器112可以包括图3中所示的内部组件902a,b和外部组件904a,b的相应集合。内部组件902a,b的每个集合包括一个或多个总线912上的一个或多个处理器906、一个或多个计算机可读RAM 908和一个或多个计算机可读ROM 910、以及一个或多个操作系统914和一个或多个计算机可读有形存储设备916。客户端计算机102中的一个或多个操作系统914、软件程序108和DNN调试程序110a、以及网络服务器112中的DNN调试程序110b可以存储在一个或多个计算机可读有形存储设备916上,以经由一个或多个RAM 908(其通常包括高速缓冲存储器)由一个或多个处理器906来执行。在图3中所示的实施例中,每个计算机可读有形存储设备916是内部硬盘驱动器的磁盘存储设备。替选地,每个计算机可读有形存储设备916是半导体存储设备,例如ROM 910、EPROM、闪存或可以存储计算机程序和数字信息的任何其他计算机可读有形存储设备。
[0091] 内部组件902a,b的每个集合还包括R/W驱动器或接口918,以从/向一个或多个便携式计算机可读有形存储设备920(例如CD-ROM、DVD、存储棒、磁带、磁盘、光盘或半导体存储设备)读取/写入。可以将诸如软件程序108和DNN调试程序110a、110b之类的软件程序存储在相应的便携式计算机可读有形存储设备920中的一个或多个上,经由相应的R/W驱动器或接口918读取,并且加载到相应的硬盘驱动器916。
[0092] 内部组件902a,b的每个集合还可以包括网络适配器(或交换机端口卡)或接口922,例如TCP/IP适配器卡、无线wi-fi接口卡、或者3G或4G无线接口卡、或者其他有线或无线通信链路。客户端计算机102中的软件程序108和DNN调试程序110a以及网络服务器计算机112中的DNN调试程序110b可以经由网络(例如,因特网、局域网或其他、广域网)和相应的网络适配器或接口922从外部计算机(例如,服务器)下载。客户端计算机102中的软件程序
108和DNN调试程序110a以及网络服务器计算机112中的DNN调试程序110b从网络适配器(或交换机端口适配器)或接口922加载到相应的硬盘驱动器916中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
[0093] 外部组件904a,b的每个集合可以包括计算机显示器924、键盘926和计算机鼠标928。外部组件904a,b还可以包括触摸屏、虚拟键盘、触摸板、指点设备以及其他人机接口设备。内部组件902a,b的每个集合还包括设备驱动器930,用于与计算机显示监视器924、键盘
926和计算机鼠标928进行接口连接。设备驱动器930、R/W驱动器或接口918、和网络适配器或接口922包括硬件和软件(存储在存储设备916和/或ROM 910中)。
[0094] 预先应理解,尽管本公开包括关于云计算的详细描述,但是本文中记载的教导的实现不限于云计算环境。相反,本发明的实施例能够与现在已知或以后开发的任何其他类型的计算环境结合实现。
[0095] 云计算是服务交付的模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储设备、应用、虚拟机和服务)的共享池的方便按需网络访问,该模型可以利用最少的管理工作或与服务提供商的交互来快速地提供和发布。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
[0096] 特性如下:
[0097] 按需自助服务:云用户可以根据需要自动单方面提供计算能力,例如服务器时间和网络存储,而无需与服务提供商进行人工交互。
[0098] 广泛的网络访问:能力可通过网络获得,并且通过标准机制被访问,所述标准机制通过异构瘦客户端平台或胖客户端平台(例如,移动电话、膝上型计算机和PDA)来促进使用。
[0099] 资源池:使用多租户模型将提供商的计算资源池化以服务多个消费者,其中根据需求动态分配和重新分配不同的物理资源和虚拟资源。有位置独立性的感觉,即消费者通常对所提供的资源的确切位置没有控制权或了解,但是可能能够指定更高抽象级别(例如,国家、州或数据中心)的位置。
[0100] 快速弹性:可以快速且弹性地、在一些情况下自动地提供能力,以快速向外扩展(scale out)并且快速发布以迅速向内扩展(scale in)。对于消费者而言,可用于提供的能力通常似乎是无限的,并且可以在任何时间按任意数量购买。
[0101] 测量服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户帐户)的某种抽象级别上利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用情况,从而为所使用的服务的提供商和消费者两者提供透明度。
[0102] 服务模型如下:
[0103] 软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供商的应用。可通过诸如网络浏览器(例如,基于网络的电子邮件)之类的瘦客户端接口从各种客户端设备访问应用。消费者不管理或控制底层云基础设施,包括网络、服务器、操作系统、存储设备、或甚至各个应用能力,可能的例外是有限的特定于用户的应用配置设置。
[0104] 平台即服务(PaaS):提供给消费者的能力是将使用由提供商支持的编程语言和工具创建的消费者创建或获取的应用部署到云基础设施上。消费者不管理或控制底层云基础设施,包括网络、服务器、操作系统或存储设备,但是可以控制所部署的应用以及可能的应用托管环境配置。
[0105] 分析即服务(AaaS):提供给消费者的能力是使用基于网页或基于云的网络(即基础设施)来访问分析平台。分析平台可以包括对分析软件资源的访问,或者可以包括对相关数据库、语料库、服务器、操作系统或存储设备的访问。消费者不管理或控制底层的基于网页或基于云的基础结构,包括数据库、语料库、服务器、操作系统或存储设备,但是可以控制所部署的应用以及可能的应用托管环境配置。
[0106] 基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和其他基础计算资源,消费者能够在其中部署和运行任意软件,所述软件可包括操作系统和应用。消费者不管理或控制底层云基础设施,但是可以控制操作系统、存储设备、所部署的应用,并且可能对选择联网组件(例如主机防火墙)进行有限的控制。
[0107] 部署模型如下:
[0108] 私有云:云基础设施仅为一个组织运营。它可以由该组织或第三方管理,并且可以存在于场所内部(on-premise)或场所外部(off-premise)。
[0109] 社区云:云基础设施由若干组织共享,并且支持具有共同关注点(例如,任务、安全要求、策略和合规性注意事项)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内部或场所外部。
[0110] 公共云:云基础结构可供公众或大型行业团体使用,并且由销售云服务的组织拥有。
[0111] 混合云:云基础设施是两个或多个云(私有、社区或公共)构成的,这些云仍然是独特的实体,但是通过实现数据和应用可移植性的标准化或专有技术(例如,用于云之间的负载均衡的云爆发(cloud bursting))绑定在一起。
[0112] 云计算环境是面向服务的,关注于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点的网络的基础设施。
[0113] 现在参考图4,描绘了说明性的云计算环境1000。如图所示,云计算环境1000包括一个或多个云计算节点100,由云消费者使用的本地计算设备(诸如例如个人数字助理(PDA)或蜂窝电话1000A、台式计算机1000B、膝上型计算机1000C、和/或汽车计算机系统1000N)可以与所述一个或多个云计算节点100通信。节点100可以彼此通信。可以在一个或多个网络(如上文所述的私有云、社区云、公共云或混合云)或其组合中对它们进行物理或虚拟分组(未示出)。这允许云计算环境1000提供基础设施、平台和/或软件,作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图4中所示的计算设备1000A-
1000N的类型仅旨在是说明性的,并且计算节点100和云计算环境1000可以通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
[0114] 现在参考图5,示出了由云计算环境1000提供的一组功能抽象层1100。应当预先理解,图5中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描绘的,提供以下层和相应的功能:
[0115] 硬件和软件层1102包括硬件和软件组件。硬件组件的示例包括:大型机1104;基于RISC(精简指令集计算机)架构的服务器1106;服务器1108;刀片服务器1110;存储设备1112;以及网络和联网组件1114。在一些实施例中,软件组件包括网络应用服务器软件1116和数据库软件1118。
[0116] 虚拟化层1120提供抽象层,可以从该抽象层提供虚拟实体的以下示例:虚拟服务器1122;虚拟存储设备1124;虚拟网络1126,包括虚拟私有网络;虚拟应用和操作系统1128;以及虚拟客户端1130。
[0117] 在一个示例中,管理层1132可以提供以下描述的功能。资源供应1134提供计算资源和用来在云计算环境内执行任务的其他资源的动态采购。当在云计算环境内采用资源时,计量和定价1136提供成本跟踪,并且为这些资源的消耗开具帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户1138为消费者和系统管理员提供对云计算环境的访问。服务级别管理1140提供云计算资源分配和管理,使得满足所需的服务级别。服务级别协议(SLA)计划和实现1142提供对根据SLA来预期未来需求的云计算资源的预先安排和购买。
[0118] 工作负载层1144提供可以采用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:映射和导航1146;软件开发和生命周期管理1148;虚拟教室教育交付1150;数据分析处理1152;交易处理1154;以及DNN调试1156。DNN调试程序110a、110b提供了在开始训练过程之前调试深度神经网络的方式。
[0119] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。