用于模型验证的方法、装置、设备和介质
技术领域
本公开的实施例主要涉及计算机技术,并且更具体地,涉及人工智能领域。
背景技术
目前机器学习技术被广泛应用在计算机视觉、人机交互、推荐系统、安全防护等各个领域。由于机器学习可能涉及到训练数据的隐私敏感信息、模型训练和/或模型结构的创新型和资源开销等,所以机器学习模型是一种非常有价值的知识产权资产。机器学习模型面临的主要风险之一是模型窃取。模型窃取是指侵犯者通过各种方法尝试还原机器学习模型。模型窃取会导致模型拥有方的数据泄露、知识产权损失和经济损失等。因此,期望在怀疑模型被窃取时能够验证模型的所有权。
发明内容
根据本公开的实施例,提供了一种用于模型保护和模型验证的方案。
在本公开的第一方面中,提供了一种用于支持模型验证的方法。该方法包括从用于分类模型的训练样本集中选择训练样本,训练样本集被分类到多个类中的第一类,分类模型被配置为实现多个类的分类。该方法还包括修改所选择的训练样本,以获得修改后的训练样本,修改后的训练样本与训练样本之间的差异不超过阈值差异。该方法进一步包括至少基于修改后的训练样本来训练分类模型,以使训练后的分类模型能够将修改后的训练样本分类到多个类中的第二类,第二类不同于第一类。
在本公开的第二方面中,提供了一种用于模型验证的方法。该方法包括获得用于模型验证的目标输入,目标输入是源输入的修改版本,源输入由目标分类模型分类到多个类中的第一类并且目标输入由目标分类模型分类到多个类中的第二类,第二类不同于第一类。该方法还包括将目标输入应用到待验证的分类模型,以获得分类模型对目标输入的分类结果。该方法进一步包括根据确定分类结果指示第二类,确定分类模型是目标分类模型的复制版本。
在本公开的第三方面中,提供了一种用于支持模型验证的装置。该装置包括样本选择模块,被配置为从用于分类模型的训练样本集中选择训练样本,训练样本集被分类到多个类中的第一类,分类模型被配置为实现多个类的分类。该装置还包括样本修改模块,被配置为修改所选择的训练样本,以获得修改后的训练样本,修改后的训练样本与训练样本之间的差异不超过阈值差异。该装置进一步包括模型训练模块,被配置为至少基于修改后的训练样本来训练分类模型,以使训练后的分类模型能够将修改后的训练样本分类到多个类中的第二类,第二类不同于第一类。
在本公开的第四方面中,提供了一种用于模型验证的装置。该装置包括输入获得模块,被配置为获得用于模型验证的目标输入,目标输入是源输入的修改版本,源输入由目标分类模型分类到多个类中的第一类并且目标输入由目标分类模型分类到多个类中的第二类,第二类不同于第一类。该装置还包括输入应用模块,被配置为将目标输入应用到待验证的分类模型,以获得分类模型对目标输入的分类结果。该装置进一步包括确定模块,被配置为根据确定分类结果指示第二类,确定分类模型是目标分类模型的复制版本。
在本公开的第五方面中,提供了一种电子设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第一方面的方法。
在本公开的第六方面中,提供了一种电子设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第二方面的方法。
在本公开的第七方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。
在本公开的第八方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第二方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了根据本公开的多个实施例的用于模型验证的系统的示意图;
图2A示出了根据本公开的一些实施例的训练样本修改的示例;
图2B示出了根据本公开的一些实施例的模型输入修改的示例;
图3根据本公开的一些实施例的用于支持模型验证的方法的流程图;
图4根据本公开的一些实施例的用于模型验证的方法的流程图;
图5根据本公开的一些实施例的用于支持模型验证的装置的框图;
图6根据本公开的一些实施例的用于模型验证的装置的框图;以及
图7示出了能够实施本公开的多个实施例的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如本文中所使用的,术语“模型”可以从训练数据中学习到相应的输入与输出之间的关联,从而在训练完成后可以针对给定的输入,生成对应的输出。模型的生成可以基于机器学习技术。在本文中,“模型”也可以被称为“学习模型”或“学习网络”,这些术语在本文中可互换地使用。
在本文中,术语“分类模型”指的是能够实现分类任务的模型。分类模型能够将输入分类到两个或更多个预定类中的一个类。很多实际应用中的问题都可以被建模为分类问题。例如,分类模型可以被应用于对象识别、模式识别、数据异常检测等场景中的问题。
通常,机器学习可以包括三个阶段,即训练阶段、测试阶段和应用阶段(也称为推理阶段)。在训练阶段,给定的模型可以使用大量的训练数据进行训练,不断迭代,直到模型能够从训练数据中获得一致的、与人类智慧所能够做出的推理类似的推理。通过训练,模型可以被认为能够从训练数据中学习从输入到输出之间的关联(也称为输入到输出的映射)。经训练的模型的参数值被确定。在测试阶段,将测试输入应用到训练后的模型,测试模型是否能够提供正确的输出,从而确定模型的性能。在应用阶段,模型可以被用于基于训练得到的参数值,对实际的输入进行处理,确定对应的输出。
如以上提及的,期望能够在怀疑机器学习模型被窃取时能够验证模型的所有权。由于机器学习模型的结构复杂且参数值较多,单纯比较参数值或者模型结构很难简单验证两个机器学习模型相同。特别地,很多机器学习模型的创新特点在于训练所使用的训练数据、训练方法等,通过解析模型的配置文件也难以明确两个模型是否完全相同。这导致模型拥有方难以声明模型的所有权。当前没有有效手段可用于验证模型。
根据本公开的实施例,提出了一种用于模型验证的方案。根据该方案,在模型训练阶段,将被分类到第一类的训练样本集中的部分训练样本进行修改,使修改后的训练样本与训练样本之间的差异不超过阈值差异。至少基于修改后的部分训练样本来训练分类模型,使训练后的分类模型能够将修改后的训练样本分类到多个类中的第二类,第二类不同于第一类。通过这样的方式训练后的分类模型可以支持模型验证。
具体地,如果要执行模型验证,将源输入的修改版本作为目标输入用于模型验证,其中源输入会被上述训练后的分类模型分类到第一类,而目标输入被上述训练后的分类模型分类到第二类。将目标输入应用到待验证的分类模型中。如果待验证的分类模型将目标输入分类为第二类而不是第一类,则确定待验证的分类模型是上述训练后的分类模型的复制版本。
根据上述方案,通过稍微修改训练样本来执行模型训练,可以支持高效的模型验证,有助于判断是否存在模型窃取行为。此外,在分类模型的输入中引入微小改动来触发差异化分类结果,隐蔽性强,不易被察觉,从而防止恶意窃取方通过专门的修改进行规避。
以下将参照附图来具体描述本公开的实施例。
图1示出了根据本公开的多个实施例的用于模型验证的系统100的示意图。在图1的示例中,计算设备110被配置用于训练分类模型112。计算设备120被配置为验证分类模型122是否是由计算设备110训练后的模型112,获得验证结果130。
计算设备110或计算设备120可以是具有计算能力的任何电子设备,包括移动设备、固定设备或便携式设备。计算设备110或计算设备120的示例包括但不限于服务器、大型计算机、小型计算机、边缘计算节点、个人计算机、服务器计算机、手持或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统,或者包括上述系统或设备中的任意一个的分布式计算系统等。虽然被示出为单独的设备,在一些实现中,执行模型训练和模型验证的计算设备可以是同一个设备或系统。
分类模型112包括能够执行分类任务的任何类型的模型。取决于具体的分类任务,分类模型112的配置和训练方法会不同。分类模型112的一些示例包括但不限于支持向量机(SVM)模型,贝叶斯模型,随机森林模型,各种深度学习/神经网络模型,诸如卷积神经网络(CNN)、循环神经网络(RNN)等。
在模型训练阶段,计算设备110被配置为基于训练数据102执行分类模型112的训练。分类模型112被配置为能够实现多个类的分类。具体地,分类模型112的输入为待分类的数据,其可以是图像、文本、或者其他类型的信息。分类模型112的输出为对输入的分类结果,其指示输入被分类到多个类中的哪一个。因此,分类模型112的训练目标是使分类模型112能够学习到区分多个类的输入。
为了实现分类模型112的训练目标,训练数据102通常包括多个类的相应训练样本集。一般而言,不同类的训练样本之间的差异比较显著,因而从人类视觉上能够察觉到这样的差异。例如,如果分类模型112是手写字符识别模型,用于确定输入的图像中呈现的手写字符是多个预定字符中的哪一个,多个类分别对应于多个预定字符。相应地,训练数据102包括呈现多个预定字符的图像,每个预定字符的一幅图像被称为一个训练样本。通常,在训练时,每个类的训练样本集包括一定数目的训练样本,以使分类模型112能够充分学习到对应类的特征。
训练数据102可以从各种训练数据库获得,或者可以通过其他方式采集到。例如,为了训练识别手写字符的分类模型,可以利用mnist数据集。注意,在此处以及下文中提及手写字符识别作为分类任务的一个示例,目的在于解释说明,但这并不是对本公开的实施例的任何限制。在一些实现中,为了实现监督训练,每个训练样本还被标注对应的分类标签,指示该训练样本对应的类。
在本公开的实施例中,为了促进后续模型验证,以检测模型是否被窃取,在训练阶段,通过特别调整训练数据102中的训练样本来对分类模型112进行训练。
具体地,计算设备110从用于训练分类模型112的一个训练样本集中选择训练样本进行修改,以获得修改后的训练样本。该训练样本集包括分类模型112输出的多个类中的某一个类(为讨论方便,在本文中称为“第一类”)的训练样本。换言之,该训练样本集中的训练样本基于人类感知应当被分类到第一类。
在一些实施例中,计算设备110可以从训练样本集中随机选择训练样本。在一些实施例中,所选择的训练样本的数目可以较少,即相对于训练样本集中剩余的训练样本数目来说较少。例如,可以从训练样本集中选取5%左右的训练样本进行修改。当然,这仅是一个具体示例,其他比例的训练样本选择也是可能的。
图2A示意性示出了训练样本修改的示例。在图2A的示例中,假设训练数据102至少包括被分类到第一类201的训练样本集102-1以及被分类到第二类202的训练样本集102-2。第一类201与第二类202不同。在手写字符识别的示例中,第一类201可以对应于一个字符,而第二类202可以对应于另一个字符。如果分类模型112被涉及为在更多数目的类中进行区分,那么训练数据102还可以包括更多类对应的训练样本集。本公开的实施例的范围在此方面不受限制。
为了支持模型验证,计算设备110从训练样本集102-1中选择一些训练样本212,并且对训练样本212进行修改以得到修改后的训练样本214。在本公开的实施例中,对原本被分类到第一类201的训练样本212的修改期望是微小的、不易觉察的。特别地,在执行训练样本修改时,修改后的训练样本214与训练样本212之间的差异不超过阈值差异。例如,如果训练样本212是图像形式的数据,可以仅修改训练样本212的有限数目的像素。对于其他形式的训练样本,也是类似执行有限的修改。
训练样本修改不是为了将训练样本212显著修改到由人类感知为第二类202。在一些实施例中,训练样本修改的目标在于使为了使分类模型112能够感知出训练样本212与修改后的训练样本214之间的差异,从而能够按照预期将训练样本214分类为第二类202。这样,如果基于修改后的训练样本214对分类模型112进行训练,训练后的分类模型112能够将修改后的训练样本214分类到第二类202而不是第一类201。另一方面,从人类感知,特别是从视觉上看,训练样本212与修改后的训练样本214之间的差异很微小,难以被察觉到。在一些示例中,训练样本212与修改后的训练样本214在视觉上被察觉到的概率低于预定概率阈值。
如下文将描述的,对训练样本212这样的处理有助于促进模型验证,同时隐蔽性强,使窃取方难以察觉和做出模型修改以避免被发现模型窃取行为。
在一些实施例中,对训练样本212的修改可以包括向每个训练样本212添加扰动数据。计算设备110可以基于预定规则来生成针对各个训练样本212的扰动数据。预定规则可以指示扰动数据按照何种算法或技术被生成。所生成的扰动数据例如可以包括随机噪声、干扰等,以实现训练样本修改的目的。用于生成扰动数据的预定规则可以被记录,以便在后续模型验证时使用,这将在下文中继续描述。通过添加扰动数据,训练样本212被修改为训练样本214,这样的训练样本214有时也称为对抗样本。
在一些实施例中,计算设备110可以向修改后的训练样本214指派分类标签,该分类标签指示第二类202。这样,在监督训练的实现中,分类模型112被训练为学习到将修改后的训练样本214的特征与第二类202相关联。在一些实施例中,训练样本集102-1中的其余训练样本可以仍然具有指示第一类201的分类标签,而训练样本集102-2中的训练样本仍然具有指示第二类202的分类标签。在基于监督训练的实现中,分类标签用于指示各个训练样本的真实分类结果,从而促进模型参数的修改和对训练拟合条件的判断。
在训练样本修改完成之后,计算设备110可以训练分类模型112。分类模型112的训练过程可以采用任何期望的训练方法。用于模型训练的训练数据至少包括修改后的训练样本214以及可能包括训练样本214对应的分类标签。训练目标在于能够使训练后的分类模型112将修改后的训练样本214分类到第二类202而不是第一类201。
除训练样本214外,在正常训练过程中,计算设备110还利用训练样本集102-1中的其余训练来训练分类模型112,使训练后的分类模型112能够将其余样本正确分类到第一类201,这是分类模型112预期应当具备的分类能力。类似地,计算设备110还利用其它类的训练样本集,包括第二类202的训练样本集102-2来训练分类模型112,使训练后的分类模型112能够将训练样本集102-1中的训练样本正确分类到第二类202,这也是分类模型112预期应当具备的分类能力。在监督训练的示例中,训练样本集102-1中的训练样本对应的分类标签以及训练样本集102-2中的训练样本对应的分类标签也在模型训练过程中被利用。
经过上述模型训练过程,训练后得到的分类模型112能够正常实现对多个预定类的分类。例如,如果将人类感知上属于某个类的输入提供给分类模型112,该模型能够正确判断该输入所属的类。此外,特殊输入还将会触发分类模型112给出特殊的输出。这个特性在模型被迁移/复制时得以保持,从而能够被利用来实现模型验证。
继续参考回图1。在一些情况下,期望验证某个分类模型122是否是训练后的分类模型112的复制版本,进而判断分类模型122是否是窃取自分类模型112。在此,分类模型112可以被称为目标分类模型,而分类模型122被称为待验证的分类模型。
在模型验证过程中,计算设备120获得用于模型验证的目标输入124。目标输入124是通过修改某个源输入来确定的,是源输入的修改版本。如图2B所示,源输入230已知将由分类模型112分类到第一类201,而目标输入124将由分类模型112分类到第二类202。
在一些实施例中,目标输入124可以通过向源输入230添加动数据来确定。针对源输入230的扰动数据例如可以基于预定规则来生成。这里所使用的预定规则可以与在分类模型112的训练过程中所使用的预定规则相同。如以上提及的,在训练过程中扰动规则被用于生成针对训练样本212的扰动数据,以用于添加到训练样本212中,生成修改后的训练样本214。由此,在添加扰动数据之外,目标输入124与源输入230之间的差异由分类模型112感知到,但在视觉上不可察觉。例如,目标输入124与源输入230之间的差异在视觉上被察觉到的概率低于阈值概率。
除修改源输入的方式之外,作为备选,用于模型验证的目标输入124还可以直接取自于分类模型112的训练数据,即可以选自训练样本214。这样可以省略再次构造扰动数据的过程。
计算设备120将目标输入124应用到待验证的分类模型122,以分类模型122对目标输入124的分类结果。如果分类结果指示目标输入124被分类到第二类,计算设备120确定验证结果130,其指示分类模型122是分类模型112的复制版本。之所以可以确定这样的验证结果,原因在于,两个分类模型112、122对特殊的目标输入124的分类相同,这说明分类模型122也经历了与分类模型122类似的训练过程,因而可以模型配置、所使用的训练数据、训练手段等都相同或类似。
在一些情况下,窃取方可能对分类模型112执行一些微调后得到分类模型122,然而这样的微调不足以带来模型创新,没有改变分类模型122对特殊输入124的特定分类结果。因此,仍然可以通过本公开的实施例的示例过程来判断分类模型122是分类模型112的复制版本。
根据本公开的实施例,通过在模型训练过程中引入特殊“触发器”,实现了高效且隐蔽的模型窃取检测。由于分类模型112被设计为能够将特殊的目标输入124分类到第二类202而不是第一类201,且目标输入124与人类感知上应当被分类为第一类201的源输入230之间的差异很微小,模型窃取方通常难以察觉到这样的模型特殊性,从而也不会在此方面专门改动模型来防止检测。这可以确保模型拥有方能够更容易验证模型是否被窃取。
图3示出了根据本公开的一些实施例的用于支持模型验证的方法300的流程图。方法300可以由图1的计算设备110实现。
在框310,计算设备110从用于分类模型的训练样本集中选择训练样本,训练样本集被分类到多个类中的第一类,分类模型被配置为实现多个类的分类。在框320,计算设备110修改所选择的训练样本,以获得修改后的训练样本,修改后的训练样本与训练样本之间的差异不超过阈值差异。在框330,计算设备110至少基于修改后的训练样本来训练分类模型,以使训练后的分类模型能够将修改后的训练样本分类到多个类中的第二类,第二类不同于第一类。
在一些实施例中,修改所选择的训练样本包括:基于预定规则来生成针对训练样本的扰动数据;以及通过向训练样本添加扰动数据来修改所选择的训练样本。
在一些实施例中,修改后的训练样本与训练样本之间的差异能够由分类模型感知,而差异在视觉上被察觉到的概率低于阈值概率。
在一些实施例中,训练分类模型包括:向修改后的训练样本指派分类标签,分类标签指示第二类;以及基于训练后的训练样本和分类标签来训练分类模型。
在一些实施例中,训练分类模型还包括:还基于训练样本集中除训练样本外的其余样本来训练分类模型,以使训练后的分类模型能够将其余样本分类到第一类。
图4示出了根据本公开的一些实施例的用于模型验证的方法400的流程图。方法400可以由图1的计算设备120实现。
在框410,计算设备120获得用于模型验证的目标输入,目标输入是源输入的修改版本,源输入由目标分类模型分类到多个类中的第一类并且目标输入由目标分类模型分类到多个类中的第二类,第二类不同于第一类。在框420,计算设备120将目标输入应用到待验证的分类模型,以获得分类模型对目标输入的分类结果。在框430,计算设备120根据确定分类结果指示第二类,确定分类模型是目标分类模型的复制版本。
在一些实施例中,获得目标输入包括:基于预定规则来生成针对源输入的扰动数据,预定规则在目标分类模型的训练中被用于生成针对训练样本的另一扰动数据,使被分类到第一类的训练样本在被加入另一扰动数据之后由目标分类模型分类到第二类;以及通过向源输入添加扰动数据来修改源输入,以获得目标输入。
在一些实施例中,扰动数据被生成为使得目标输入与源输入之间的差异能够由目标分类模型感知到,而差异在视觉上被察觉到的概率低于阈值概率。
在一些实施例中,目标分类模型通过图3的方法300训练得到。
图5示出了根据本公开的一些实施例的用于支持模型验证的装置500的示意性框图。装置500可以被包括在图1的计算设备110中或者被实现为计算设备110。
如图5所示,装置500包括样本选择模块510,被配置为从用于分类模型的训练样本集中选择训练样本,训练样本集被分类到多个类中的第一类,分类模型被配置为实现多个类的分类。装置500还包括样本修改模块520,被配置为修改所选择的训练样本,以获得修改后的训练样本,修改后的训练样本与训练样本之间的差异不超过阈值差异。装置500还包括模型训练模块530,被配置为至少基于修改后的训练样本来训练分类模型,以使训练后的分类模型能够将修改后的训练样本分类到多个类中的第二类,第二类不同于第一类。
在一些实施例中,样本修改模块520包括:扰动数据生成模块,被配置为基于预定规则来生成针对训练样本的扰动数据;以及扰动数据添加模块,被配置为通过向训练样本添加扰动数据来修改所选择的训练样本。
在一些实施例中,修改后的训练样本与训练样本之间的差异能够由分类模型感知,而差异在视觉上被察觉到的概率低于阈值概率。
在一些实施例中,模型训练模块530包括:标签指派模块,被配置为向修改后的训练样本指派分类标签,分类标签指示第二类;以及第一训练模块,被配置为基于训练后的训练样本和分类标签来训练分类模型。
在一些实施例中,模型训练模块530还包括:第二训练模块,被配置为还基于训练样本集中除训练样本外的其余样本来训练分类模型,以使训练后的分类模型能够将其余样本分类到第一类。
图6示出了根据本公开的一些实施例的用于模型验证的装置600的示意性框图。装置600可以被包括在图1的计算设备120中或者被实现为计算设备120。
如图6,装置600包括输入获得模块610,被配置为获得用于模型验证的目标输入,目标输入是源输入的修改版本,源输入由目标分类模型分类到多个类中的第一类并且目标输入由目标分类模型分类到多个类中的第二类,第二类不同于第一类。装置600还包括输入应用模块620,被配置为将目标输入应用到待验证的分类模型,以获得分类模型对目标输入的分类结果。装置600还包括确定模块630,被配置为根据确定分类结果指示第二类,确定分类模型是目标分类模型的复制版本。
在一些实施例中,输入获得模块610包括:扰动数据生成模块,被配置为基于预定规则来生成针对源输入的扰动数据,预定规则在目标分类模型的训练中被用于生成针对训练样本的另一扰动数据,使被分类到第一类的训练样本在被加入另一扰动数据之后由目标分类模型分类到第二类;以及扰动数据添加模块,被配置为通过向源输入添加扰动数据来修改源输入,以获得目标输入。
在一些实施例中,扰动数据被生成为使得目标输入与源输入之间的差异能够由目标分类模型感知到,而差异在视觉上被察觉到的概率低于阈值概率。
在一些实施例中,目标分类模型通过图5的装置500训练得到。
图7示出了可以用来实施本公开的实施例的示例设备700的示意性框图。设备700可以用于实现图1的计算设备110或计算设备120,或者被包括在计算设备110或计算设备120中。
如图所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如方法300和/或方法400。例如,在一些实施例中,方法300和/或方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的方法300和/或方法400的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法300和/或方法400。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种车辆品牌识别方法、装置及存储介质