一种模型处理方法及相关装置与流程

文档序号:30429266发布日期:2022-06-15 16:22阅读:73来源:国知局
一种模型处理方法及相关装置与流程
一种模型处理方法及相关装置
1.本技术要求于2020年12月14日提交中国专利局、申请号为202011465879.9、发明名称为“一种基于性能反馈的模型自动调优方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术实施例涉及人工智能领域,尤其涉及一种模型处理方法及相关装置。


背景技术:

3.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
4.在人工智能领域针对模型的性能调优一直炙手可热,模型性能优化的结果在一定程度上代表着公司/组织在人工智能领域的水平,在某些时间敏感度高的ai应用领域,模型性能的好坏对产品竞争力有直接影响,所以对模型的高性能提出了更加严苛的要求。
5.因此,如何对模型的性能优化是目前亟待解决的问题。


技术实现要素:

6.本技术实施例提供了一种模型处理方法及相关装置,通过遗传算法对子图进行寻优操作,优化过程中减少人工操作,降低用户掌握专业的性能优化技能的要求。
7.本技术实施例第一方面提供了一种模型处理方法,该方法可以由模型处理装置执行,也可以由模型处理装置的部件(例如处理器、芯片、或芯片系统等)执行,该方法包括:获取第一模型;拆分第一模型,得到至少一个第一子图;基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图,至少一个第一子图与至少一个第二子图一一对应;基于至少一个第二子图获取第二模型。
8.本技术实施例中,通过拆分第一模型,得到至少一个第一子图,并基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图,基于至少一个第二子图获取第二模型。优化过程中减少人工操作,降低用户掌握专业的性能优化技能的要求。
9.可选地,在第一方面的一种可能的实现方式中,上述步骤基于遗传算法对每个第一子图进行寻优操作,包括:步骤1:使用多个第一策略对第一子图进行调整,得到多个第三子图;步骤2:根据多个第三子图的性能数值选择多个第三子图中的第二子图。
10.该种可能的实现方式中,使用第一策略对第一子图进行优化,得到多个第三子图,再根据性能数值选择多个第三子图中的第二子图。步骤1与步骤2可以看做是第一子图的一次迭代,通过将第一模型拆分为多个第一子图,再分别对多个第一子图进行优化,得到优化后的第二子图,优化过程中减少人工操作,降低用户掌握专业的性能优化技能的要求。
11.可选地,在第一方面的一种可能的实现方式中,上述步骤基于遗传算法对每个第一子图进行寻优操作,包括:步骤1:使用多个第一策略对第一子图进行调整,得到多个第三子图;步骤2:根据多个第三子图的性能数值选择多个第三子图中的第四子图;步骤3:使用多个第二策略对第四子图进行调整,得到多个第五子图;步骤4:从多个第五子图中选择性能数值满足预设条件的子图作为优化后的第二子图。
12.该种可能的实现方式中,步骤1和步骤2可以认为是一次迭代,实际应用中,为了子图的调优效果更好,一般需要经过多次迭代,即还包括步骤3与步骤4,换句话说步骤1与步骤2可以看做是第一子图的二次迭代,优化过程中减少人工操作,降低用户掌握专业的性能优化技能的要求。
13.可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:重复执行步骤1、步骤2至重复执行的次数大于或等于第一预设阈值。
14.该种可能的实现方式中,重复执行多次的步骤1与步骤2直至重复次数大于或等于第一预设阈值或者得到的子图可以作为第二子图。对第一子图进行多次迭代,得到更加优化的第二子图。
15.可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:重复执行步骤1、步骤2、步骤3以及步骤4至重复执行的次数大于或等于第一预设阈值。
16.该种可能的实现方式中,重复执行多次的步骤1至步骤4直至重复次数大于或等于第一预设阈值或者得到的子图可以作为第二子图。对第一子图进行多次迭代,得到更加优化的第二子图。
17.可选地,在第一方面的一种可能的实现方式中,上述步骤根据多个第三子图的性能数值选择多个第三子图中的第四子图,包括:运行多个第三子图得到多个性能数值;确定多个第三子图中性能数值大于或等于第二预设阈值的子图为第四子图。
18.该种可能的实现方式中,对每次迭代得到的子图进行编译上板运行,相较于现有技术中模拟运行,本技术可以得到子图更加准确的性能数值,进而确定更加优化的第二子图。
19.可选地,在第一方面的一种可能的实现方式中,上述步骤中的第一模型包括第一人工智能ai算子以及第二ai算子;拆分第一模型,得到至少一个第一子图,包括:基于第二ai算子为拆分点拆分第一ai算子,得到至少一个第一子图。示例性的,第一ai算子为计算算子,第二ai算子为逻辑算子。
20.该种可能的实现方式中,针对包括第一ai算子和第二ai算子的模型,对计算算子进行优化,可以提升第二模型计算某些数据的效率。
21.可选地,在第一方面的一种可能的实现方式中,上述步骤基于至少一个第二子图获取第二模型,包括:合并至少一个第二子图,得到第二模型。
22.可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:当拆分第一模型,得到至少一个第一子图时,记录第一工作流;当基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图时,记录第二工作流;当基于至少一个第二子图获取第二模型时,纪录第三工作流。
23.该种可能的实现方式中,通过记录工作流的方式,支持离散调优,调优中断后可以根据工作流返回中断前的位置,可以提升调优效率和调优体验。
24.可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:读取工作流,工作流包括第一工作流、第二工作流或第三工作流中的至少一种;恢复至记录工作流时子图的状态,子图包括第一子图、第二子图、第三子图、第四子图或第五子图中的至少一种。
25.该种可能的实现方式中,通过记录工作流和读取工作流的方式,支持离散调优,中断重启可以根据工作流重新恢复到上一次调优的位置继续调优。调优持续时间长,支持离散调优可提高调优效率和调优体验。
26.可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:获取第一模型的第一性能数值与第二模型的第二性能数值。
27.该种可能的实现方式中,比较优化前的第一模型与优化后的第二模型之间的性能,进而确定调优效果。
28.可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:若第二性能数值与第一性能数值的差值超过第三预设阈值,则输出提示信息,提示信息用于指示第一模型调优成功。
29.该种可能的实现方式中,在优化性能高于第三预设阈值时,输出调优成功信息,可以使得用户准确获取调优结果。
30.本技术第二方面提供一种模型处理装置,该模型处理装置包括:获取单元,用于获取第一模型;拆分单元,用于拆分第一模型,得到至少一个第一子图;寻优单元,用于基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图,至少一个第一子图与至少一个第二子图一一对应;获取单元,还用于基于至少一个第二子图获取第二模型。
31.可选地,在第二方面的一种可能的实现方式中,上述模型处理装置中的寻优单元包括:调整子单元,用于使用多个第一策略对第一子图进行调整,得到多个第三子图;选择子单元,用于根据多个第三子图的性能数值选择多个第三子图中的第二子图。
32.可选地,在第二方面的一种可能的实现方式中,上述模型处理装置中的寻优单元包括:调整子单元,用于使用多个第一策略对第一子图进行调整,得到多个第三子图;选择子单元,用于根据多个第三子图的性能数值选择多个第三子图中的第四子图;调整子单元,还用于多个第二策略对第四子图进行调整,得到多个第五子图;选择子单元,还用于从多个第五子图中选择性能数值满足预设条件的子图作为优化后的第二子图。
33.可选地,在第二方面的一种可能的实现方式中,上述模型处理装置中的调整子单元重复执行调整的步骤,选择子单元重复执行选择的步骤至重复执行的次数大于或等于第一预设阈值。
34.可选地,在第二方面的一种可能的实现方式中,上述模型处理装置中的选择子单元,具体用于运行多个第三子图得到多个性能数值;选择子单元,具体用于确定多个第三子图中性能数值大于或等于第二预设阈值的子图为第四子图。
35.可选地,在第二方面的一种可能的实现方式中,上述第一模型包括第一人工智能ai算子以及第二ai算子;拆分单元,具体用于基于第二ai算子为拆分点拆分第一ai算子,得到至少一个第一子图。
36.可选地,在第二方面的一种可能的实现方式中,上述模型处理装置中的获取单元,具体用于合并至少一个第二子图,得到第二模型。
37.可选地,在第二方面的一种可能的实现方式中,上述模型处理装置还包括:记录单元,用于当拆分第一模型,得到至少一个第一子图时,记录第一工作流;记录单元,还用于当基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图时,记录第二工作流;记录单元,还用于当基于至少一个第二子图获取第二模型时,纪录第三工作流。
38.可选地,在第二方面的一种可能的实现方式中,上述模型处理装置还包括:读取单元,用于读取工作流,工作流包括第一工作流、第二工作流或第三工作流中的至少一种;恢复至记录工作流时子图的状态,子图包括第一子图、第二子图、第三子图、第四子图或第五子图中的至少一种。
39.可选地,在第二方面的一种可能的实现方式中,上述模型处理装置中的获取单元,还用于获取第一模型的第一性能数值与第二模型的第二性能数值。
40.可选地,在第二方面的一种可能的实现方式中,上述模型处理装置还包括:提示单元,用于若第二性能数值与第一性能数值的差值超过第三预设阈值,则输出提示信息,提示信息用于指示第一模型调优成功。
41.本技术第三方面提供了一种模型处理装置,该模型处理装置执行前述第一方面或第一方面的任意可能的实现方式中的方法。
42.本技术第四方面提供了一种模型处理装置,包括:处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该模型处理装置实现上述第一方面或第一方面的任意可能的实现方式中的方法。
43.本技术第五方面提供了一种计算机可读介质,其上存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行前述第一方面或第一方面的任意可能的实现方式中的方法。
44.本技术第六方面提供了一种计算机程序产品,该程序产品包括程序,当该程序被运行时,使得前述第一方面或第一方面的任意可能的实现方式中的方法被执行。
45.其中,第二、第三、第四、第五、第六方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面不同可能实现方式所带来的技术效果,此处不再赘述。
46.从以上技术方案可以看出,本技术实施例具有以下优点:通过拆分第一模型,得到至少一个第一子图,并基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图,基于至少一个第二子图获取第二模型。优化过程中减少人工操作,降低用户掌握专业的性能优化技能的要求。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
48.图1为本技术实施例提供的一种人工智能主体框架示意图;
49.图2为现有模型子图融合优化的过程示意图;
50.图3为本技术实施例提供的一种芯片硬件结构;
51.图4为本技术实施例提供的一种系统架构;
52.图5为本技术实施例中模型处理方法一个流程示意图;
53.图6为本技术实施例中一种举例拆分第一模型的结构示意图;
54.图7-图10为本技术实施例中几种优化第一模型的结构示意图;
55.图11为本技术实施例中模型处理方法另一个流程示意图;
56.图12为图11对应的子图优化过程示意图;
57.图13-图15为本技术实施例中模型处理装置的几个结构示意图。
具体实施方式
58.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
59.图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
60.下面从“智能信息链”(水平轴)和“互联网技术(internet technology,it)价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
[0061]“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
[0062]“it价值链”从人工智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
[0063]
(1)基础设施:
[0064]
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片{中央处理器(central processing unit,cpu)、神经网络处理单元(neural network processing unit,npu)、图形处理器(graphics processing unit,gpu)、专用集成电路(application specific integrated circuit,asic)、现场可编程逻辑门阵列(field programmable gate array,fpga)等硬件加速芯片}提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
[0065]
(2)数据:
[0066]
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
[0067]
(3)数据处理:
[0068]
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
[0069]
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
[0070]
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
[0071]
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
[0072]
(4)通用能力:
[0073]
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
[0074]
(5)智能产品及行业应用:
[0075]
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
[0076]
由于本技术实施例涉及神经网络的应用,为了便于理解,下面先对本技术实施例主要涉及的神经网络的相关术语和概念进行介绍。
[0077]
(1)神经网络:
[0078]
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
[0079][0080]
其中,s=1、2、
……
n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0081]
(2)深度神经网络:
[0082]
深度神经网络(deep neural network,dnn),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量。由于dnn层数多,则系数w和偏移向量的数量也就很多了。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为w
243
。上标3代表系数所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就
是:第l-1层的第k个神经元到第l层的第j个神经元的系数定义为w
jkl
。需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0083]
(3)卷积神经网络:
[0084]
卷积神经网络(convolutional neuron network,cnn)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
[0085]
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
[0086]
(4)损失函数:
[0087]
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
[0088]
(5)深度学习:
[0089]
深度学习(deep learning)是一类基于深层次神经网络算法的机器学习技术,其主要特征是使用多重非线性变换构对数据进行处理和分析。主要应用于人工智能领域的感知、决策等场景,例如图像和语音识别、自然语言翻译、计算机博弈等。
[0090]
(6)神经网络处理单元:
[0091]
神经网络处理单元(neural network processing unit,npu)是专门针对神经网络计算进行特殊优化设计的处理器。相比传统的图形处理器(graphics processing unit,
gpu),增加了乘法累加计算,在提供相同算力的情况下,使用更少的内存带宽,更低的功耗。
[0092]
(7)像素值:
[0093]
图像的像素值可以是一个红绿蓝(rgb)颜色值,像素值可以是表示颜色的长整数。例如,像素值为256*red+100*green+76*blue,其中,blue代表蓝色分量,green代表绿色分量,red代表红色分量。各个颜色分量中,数值越小,亮度越低,数值越大,亮度越高。对于灰度图像来说,像素值可以是灰度值。
[0094]
(8)遗传算法:
[0095]
遗传算法是模拟自然界遗传选择与淘汰的生物进化计算模型。遗传算法研究的对象是种群,即很多个体的集合,对应于求解的问题,这里的个体代表一个解,种群代表这些解的集合,当然,开始的时候,也许所有的解不是最优的,经过将这些解进行编码、选择、交叉、变异之后,逐代进化得到子代,子代既继承了上一代的信息,又优于上一代,这样周而复始,从子代中可以找到求解问题的全局最优解。遗传算法对于待寻优的函数基本无限制,它既不要求函数连续,也不要求函数可微,既可以是数学解析式所表示的显函数,又可以是映射矩阵甚至是神经网络的隐函数,因而应用范围较广。
[0096]
(9)计算图:
[0097]
机器学习任务的核心是机器学习模型的定义及机器学习模型的参数求解方式,将两者抽象后,确定一个唯一的计算逻辑,将表示该计算逻辑的图命名为计算图(也可以称为图)。计算图是有向无环图,定义了数据的流向方式、数据的计算方式以及各种计算之间的关系等。
[0098]
(10)算子:
[0099]
深度神经网络中的操作(例如:卷积、池化、全连接等)称为算子。
[0100]
在人工智能领域针对模型的性能调优一直炙手可热,模型性能优化的结果在一定程度上代表着公司/组织在人工智能领域的水平,在某些时间敏感度高的ai应用领域,模型性能的好坏对产品竞争力有直接影响,所以对模型的高性能提出了更加严苛的要求。
[0101]
目前,数据重用优化是基于模型进行软硬件协同优化的重要手段,例如基于l1缓冲区(buffer)、l2buffer、l2缓存(cache)的融合优化,能够最大限度利用硬件的计算能力,减少数据交互和拷贝时间,从而大幅度提升模型的性能。如图2所示,现有模型子图融合优化的过程示意图。用户根据经验进行改图,优化器内部结合各类算子在特定输入shape下的“最优”切分策略去预估l1、l2数据流下的算子性能收益,然后,统筹考虑融合深度、交叠(overlap)计算、切分代价和融合收益等对冲收益,确定能够获得正收益的融合切分策略。
[0102]
但是,这种处理方式从实现角度有几个难点,一个是当前基于npu的数据重用优化对调优人员来说有很高的门槛,需要熟悉npu的架构细节和不同产品形态的buffersize配置,调优过程中需要根据相关的日志,结合经验来判断融合切分的策略是否正确。二是对于各种网络拓扑结构,融合策略的程序实现相对比较复杂,费时费力,难以工程化。
[0103]
针对上述难点,本技术提供了一种模型处理方法,通过遗传算法对子图进行寻优操作,优化过程中减少人工操作,降低用户掌握专业的性能优化技能的要求。
[0104]
下面介绍本技术实施例提供的一种芯片硬件结构。请参阅图3,本发明实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器npu 300。神经网络处理器300作为协处理器挂载到主cpu(host cpu)上,由host cpu分配任务。npu的核心部分为运算电路303,控
制器304控制运算电路303提取存储器(权重存储器或输入存储器)中的数据并进行运算。
[0105]
在一些实现中,运算电路303内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
[0106]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器302中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器301中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器308中。
[0107]
向量计算单元307可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元307可以用于神经网络中非卷积/非fc层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
[0108]
在一些实现种,向量计算单元307将经处理的输出的向量存储到统一缓存器306。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路303的激活输入,例如用于在神经网络中的后续层中的使用。
[0109]
统一存储器306用于存放输入数据以及输出数据。
[0110]
权重数据直接通过存储单元访问控制器305(direct memory access controller,dmac)将外部存储器中的输入数据搬运到输入存储器301和/或统一存储器306、将外部存储器中的权重数据存入权重存储器302,以及将统一存储器306中的数据存入外部存储器。
[0111]
总线接口单元(bus interface unit,biu)310,用于通过总线实现主cpu、dmac和取指存储器309之间进行交互。
[0112]
与控制器304连接的取指存储器(instruction fetch buffer)209,用于存储控制器304使用的指令。
[0113]
控制器304,用于调用指存储器309中缓存的指令,实现控制该运算加速器的工作过程。
[0114]
一般地,统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为片上(on-chip)存储器,外部存储器为该npu外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,简称ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
[0115]
参见附图4,本发明实施例提供了一种系统架构400。执行设备410由一个或多个服务器实现,可选的,与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备;执行设备410可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备410可以使用数据存储系统450中的数据,或者调用数据存储系统450中的程序代码实现模型的调优。
[0116]
用户可以操作各自的用户设备(例如本地设备401和本地设备402)与执行设备410
进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
[0117]
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备410进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
[0118]
在另一种实现中,执行设备410的一个方面或多个方面可以由每个本地设备实现,例如,本地设备401可以为执行设备410提供本地数据或反馈计算结果。
[0119]
需要注意的,执行设备410的所有功能也可以由本地设备实现。例如,本地设备401实现执行设备410的的功能并为自己的用户提供服务,或者为本地设备402的用户提供服务。
[0120]
请参阅图5,本技术实施例提供的模型处理方法的一个实施例包括步骤501至步骤506。该模型处理方法可以由模型处理装置(也可以称为调优装置)处理,还可以由模型处理装置的部件(例如:处理器、芯片、或芯片系统等),具体此处不做限定。
[0121]
本技术实施例提供的一种模型处理方法可以应用在神经网络模型在npu硬件上性能不达标的情况下,用户将待调优的模型作为自动调优装置的输入,设置其他条件(例如迭代次数或性能满足预设条件等)后启动自动调优,整个调优过程减少用户进行干预,调优结束后给用户一个不低于原始神经网络模型性能的优化模型,模型精度保持不变。
[0122]
在步骤501中,获取第一模型。
[0123]
本技术实施例中的第一模型是待优化的神经网络模型,该第一模型可以由用户输入,也可以是接收其他设备发送,具体此处不做限定。
[0124]
可选地,第一模型包括第一ai算子以及第二ai算子。其中,第一ai算子主要负责执行矩阵、向量、标量计算密集的算子任务,可以采用达芬奇架构。第二ai算子主要负责执行逻辑运算等不适合第一ai算子执行的算子任务(承担非矩阵类复杂计算)。
[0125]
也可以理解为,第一ai算子主要用于向量和矩阵的运算,第二ai算子主要用于逻辑运算。示例性的,第一ai算子为ai core算子,作为ai芯片的计算核心。第二ai算子为ai cpu算子。
[0126]
在步骤502中,拆分第一模型,得到至少一个第一子图。
[0127]
本技术实施例中的第一模型为神经网络模型,具体可以是深度神经网络模型,还可以是卷积神经网络模型等,具体此处不做限定。其中,每一个神经网络模型可以看做一个计算图,该计算图可以拆分为一个或多个计算子图(或者称为子图),子图包括一个或多个第一ai算子以及一个或多个第二ai算子。
[0128]
可选地,第一模型具有大量的计算(向量、矩阵等)算子和控制算子,可以按照控制算子切分计算算子得到至少一个第一子图。
[0129]
可选地,若第一模型包括第一ai算子以及第二ai算子,基于第二ai算子为拆分点拆分第一ai算子,得到至少一个第一子图。示例性的,基于ai cpu算子为拆分点拆分ai core算子。
[0130]
示例性的,请参阅图6,第一模型包括5个第一ai算子611至615以及2个第二ai算子(也可以理解为拆分点)621与622,第一模型拆分为三个第一子图(分别为1号第一子图、2号第一子图以及3号第一子图)。可以理解的是,图6中第一ai算子、第二ai算子、第一子图包括
第一ai算子的数量以及第一子图的数量可以更多或更少,具体数量此处不做限定。
[0131]
可选地,拆分第一模型,得到至少一个第一子图时,记录第一工作流。提供一个可以回退的机制,避免由于设备异常带来的重新计算。
[0132]
本技术实施例中,关于第一子图、第一ai算子、第二ai算子的数量不做限制。
[0133]
在步骤503中,基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图。
[0134]
本技术实施例中的至少一个第一子图与至少一个第二子图一一对应,也可以理解为第一子图的数量与第二子图的数量相同。
[0135]
可以理解的是,优化后的个别第二子图也有可能跟对应的第一子图相同,即该个别第一子图进行寻优操作之后,可能并没有得到化后的新子图(换句话说,该个别第一子图进行是较理想的子图)。
[0136]
本技术实施例中,可以将拆分第一模型得到的一部分或所有的第一子图进行寻优操作,具体此处不做限定。
[0137]
该步骤503可以包括多个步骤,下面以对一个第一子图的寻优操作为例进行描述:
[0138]
步骤1:使用多个第一策略对第一子图进行调整,得到多个第三子图。
[0139]
本技术实施例中的策略是指改图方法的具体体现,改图可以理解为基于某个策略(节点切分数目、数据流等)设置节点的属性。该节点的属性包括输入和输出。
[0140]
本技术实施例中,使用多个第一策略对第一子图进行调整,可以是编码、交叉、变异等,具体此处不做限定。
[0141]
示例性的,延续图6中第一子图的举例,请参阅图7,对于1号第一子图来说,使用n个第一策略对1号第一子图进行调整,得到n个第三子图(包括11号至1n号)。对于2号第一子图来说,使用n个第一策略对2号第一子图进行调整,得到n个第三子图(包括21号至2n号)。对于3号第一子图来说,使用n个第一策略对3号第一子图进行调整,得到n个第三子图(包括31号至3n号)。其中,n为大于1的正整数。
[0142]
示例性的,如图8所示,用4个第一策略对1号第一子图进行变异,得到11号、12号、13号、14号第三子图。用4个第一策略对3号第一子图进行变异,得到31号、32号、33号、34号第三子图。
[0143]
步骤2:根据多个第三子图的性能数值选择多个第三子图中的第四子图。
[0144]
使用多个第一策略对第一子图进行调整,得到多个第三子图之后。运行多个第三子图得到多个性能数值,确定多个第三子图中性能数值大于或等于第二预设阈值的子图为第四子图。
[0145]
本技术实施例中,运行多个第三子图可以是编译上板运行,也可以是模拟运行等,具体此处不做限定。当然,优选的方案是编译上板运行,这样得到的第三子图的性能数值更加准确,从而可以选择更加优化的第二子图或第四子图。当然,也可以对第三子图进行算子优化后再编译上板运行。算子优化可以采用遗传算法和强化学习等,其中,遗传算法针对cube类算子,强化学习针对elewise、broadcast、reduce等算子,npu算子列表中不同的算子调优的算法可能不同,具体此处不做限定。
[0146]
本技术实施例中,第四子图的数量可以是一个也可以是多个,换句话说可以选择多个第三子图中性能数值最好的子图为第四子图或第二子图。也可以选择多个第三子图中
性能数值大于或等于第二预设阈值的子图为第四子图或第二子图,相当于选择topk。可以理解的是,第二预设阈值可以根据实际需要设置,具体此处不做限定。
[0147]
本技术实施例中的性能数值可以是指时长、精度或准确率等,即第三子图计算某些数据(例如矩阵运算、向量运算等)所耗用的时长、精度或准确率等,具体此处不做限定。其中,对于时长的单位可以是毫秒、微秒、飞秒等,此处不做限定。
[0148]
可选地,根据多个第三子图的性能数值选择多个第三子图中的第四子图之后,可以直接将第四子图作为优化后的第二子图。也可以理解为第一子图进行了一次迭代得到第二子图。当然,也可以对第一子图进行多次迭代得到第二子图。
[0149]
示例性的,延续上述图7,对于11号至1n号第三子图运行后,确定11号至1n号中的1x号的性能数值大于或等于第二预设阈值,则将1x号第三子图作为第二子图或者第四子图。其中,x为正整数,且1《x《n。对于21号至2n号第三子图运行后,确定21号至2n号中的2x号的性能数值大于或等于第二预设阈值,则将2x号第三子图作为第二子图或者第四子图。对于31号至3n号第三子图运行后,确定31号至3n号中的3x号的性能数值大于或等于第二预设阈值,则将3x号第三子图作为第二子图/第四子图。
[0150]
示例性的,如图8所示,根据性能数值从11号、12号、13号、14号第三子图中确定12号第三子图为第二子图/第四子图。根据性能数值从31号、32号、33号、34号第三子图中确定34号第三子图为第二子图/第四子图。
[0151]
步骤3:使用多个第二策略对第四子图进行调整,得到多个第五子图。本步骤是可选地。
[0152]
本技术实施例中,在第一子图的迭代过程中,一个策略可以对应一个子图(也可以称为策略子图)。换句话说,第二策略可以是第一策略优化得到的策略,第二策略还可以是新的策略,具体此处不做限定。
[0153]
可选地,根据多个第三子图的性能数值选择多个第三子图中的第四子图之后,可以继续使用多个第二策略对第四子图进行调整,得到多个第五子图。
[0154]
步骤3与步骤1类似,具体此处不再赘述。
[0155]
步骤4:从多个第五子图中选择性能数值满足预设条件的子图作为优化后的第二子图。本步骤是可选地。
[0156]
本技术实施例中的满足预设条件的子图可以理解为第五子图中性能数值大于或等于第二预设阈值的子图。
[0157]
步骤4与步骤2类似,具体此处不再赘述。
[0158]
可选地,步骤1和步骤2可以认为是一次迭代,实际应用中,为了子图的调优效果更好,一般需要经过多次迭代,即还包括步骤3与步骤4,换句话说重复执行多次的步骤1与步骤2直至重复次数大于或等于第一预设阈值或者得到的子图可以作为第二子图,或者重复执行多次的步骤1至步骤4直至重复次数大于或等于第一预设阈值或者得到的子图可以作为第二子图,具体此处不做限定。
[0159]
可选地,在迭代过程中,可以记录工作流。换句话说,通过记录工作流的方式记录上次调优到的位置,下次可以从该位置继续调优。示例性的,第一子图需要进行20轮迭代,但是调优到第10轮耗费了10个小时的时候,设备异常,那么下次再对该模型调优可以直接从第10轮开始迭代调优,而不用从第1轮重新开始迭代。这样,在调优过程中,支持离散调
优,中断重启可以读取相应的工作流,重新恢复到上一次调优的位置据需调优,提升调优效率和调优体验。
[0160]
示例性的,第一次迭代的输入是32,第二次迭代可以变为64查看一下子图上板运行后的性能数值,如果64的性能好于32的性能,则可以通过增加(例如128)的方式进行优化。如果64的性能低于32的性能,则可以通过减少(例如:16)的方式进行优化。
[0161]
在步骤504中,基于至少一个第二子图获取第二模型。
[0162]
获取至少一个第二子图之后,可以基于至少一个第二子图获取第二模型。具体可以是将优化后的第二子图替换第一子图,得到优化后的第二模型。也可以是将优化后的第二子图与第二ai算子拼接生成第二模型等,具体此处不做限定。
[0163]
示例性的,延续上述图7的举例,请参阅图9,假设迭代一次,将优化后的1x号第二子图替换1号第一子图,将优化后的2x号第二子图替换2号第一子图,将优化后的3x号第二子图替换3号第一子图,并与1号拆分点、2号拆分点合并得到优化后的第二模型。当然,也可以调优部分第一子图,如图10所示,1号第一子图未做调优,则将优化后的第二子图替换第一子图并与1号拆分点、2号拆分点合并得到优化后的第二模型。
[0164]
在步骤505中,获取第一模型的第一性能数值与第二模型的第二性能数值。本步骤是可选地。
[0165]
在获取第一模型之后,可以运行该第一模型得到第一模型的第一性能数值。在获取第二模型之后,可以运行该第二模型得到第二模型的第二性能数值。性能数值的相关描述可以参照上述子图性能数值的描述,具体此处不再赘述。
[0166]
在步骤506中,若第二性能数值与第一性能数值的差值超过第三预设阈值,则输出提示信息。本步骤是可选地。
[0167]
获取第一性能数值与第二性能数值之后,若第二性能数值与第一性能数值的差值超过第三预设阈值,则输出提示信息。该提示信息用于指示第一模型调优成功。换句话说,调优后得到的第二模型与第一模型进行性能比较,若高于第一模型一定数值,表示调优成功。
[0168]
可选地,若第二性能数值与第一性能数值的差值小于第三预设阈值,也可以输出调优失败的信息。
[0169]
本技术实施例中的第三预设阈值可以根据实际需要设置,具体此处不做限定。若性能数值为时长,则第三预设阈值为时长,若性能数值为准确率,则第三预设阈值为百分比或小数等,即第三预设阈值与性能数值的单位和/或数量级相关。
[0170]
可选地,提示信息可以以短信、邮件等方式向用户展示,具体此处不做限定。
[0171]
一种可能实现的方式中,本技术实施例的模型处理方法包括步骤501至504。另一种可能实现的方式中,本技术实施例的模型处理方法包括步骤501至505。另一种可能实现的方式中,本技术实施例的模型处理方法包括步骤501至506。
[0172]
可选地,调优装置可以设置在云端,可以作为一个时间计价的云服务提供给租户,租户租用调优装置完成模型的自动调优。
[0173]
本技术实施例中,一方面,通过拆分第一模型,得到至少一个第一子图,并基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图,基于至少一个第二子图获取第二模型。优化过程中减少人工操作,降低用户掌握专业的性能优化技能
的要求。另一方面,运行通过寻优操作得到的子图,并根据运行后的性能数值选择第二子图,即通过子图的实际上板运行可以自动选择性能较优的第二子图,减少现有技术中理论预估存在的误差(例如未考虑的运行时硬件限制、算子实现质量等)。另一方面,可以通过记录工作流和读取工作流的方式,支持离散调优,中断重启可以根据工作流重新恢复到上一次调优的位置继续调优。调优持续时间长,支持离散调优可提高调优效率和调优体验。
[0174]
另外,请参阅图11,本技术提供了模型处理方法另一个流程示意图。包括步骤1至5。
[0175]
1、用户传入一个第三方模型给自动调优装置,装置主控调用模型编译接口将原始模型进行编译和切分,得到基准模型和若干个子图模型,记录工作流(workflow)。
[0176]
2、装置里将每个子图基于遗传算法进行寻优,每个迭代记录workflow。
[0177]
2.1基于初始种群产生迭代一策略,基于每一个策略进行改图,生成一张策略子图,将所有策略子图进行编译上板执行,得到策略子图的性能数据。
[0178]
2.2保留top k策略,作为下一个迭代的种群,基于此种群进行交叉和变异,生成下一个迭代的策略,基于每一个策略进行改图,生成一张策略子图。
[0179]
2.3将所有策略子图进行算子优化后编译上板执行,得到策略子图的性能数据,保留性能表现好的若干策略,丢弃性能表现差的策略。
[0180]
2.4重复2.2和2.3步骤进行若干轮迭代(或直到满足某个终止条件),得到每个子图的最优策略。
[0181]
3、将所有子图进行替换还原,得到优化后的模型,记录workflow。
[0182]
4、与原图模型进行性能比较,高于原图模型性能一定阈值,表示自动调优成功,反之,表示没有更大调优空间,调优失败,记录workflow。
[0183]
5、调优过程中支持读workflow基于任意阶段中断和恢复调优以及实时结束当前调优任务给出阶段最优结果。
[0184]
示例性的,图11对应的子图优化过程可以参考图12。
[0185]
本实施例中,将基于个人经验的手动调优改进为基于工具的自动调优,寻优模型的子图基于遗传算法经过多轮迭代交叉编译产生不同的策略,使用策略子图上板运行得到真实性能数据,实现调优过程的全自动化,调优门槛更低,且调优不会伴随性能回退。离散调优和基于条件中断调优特性的支持,让调优具有更强的鲁棒性,同时也具备更好的用户体验。
[0186]
一方面,基于真实硬件环境执行性能数据进行优化反馈进行自动调优。从而达到全自动调优,门槛低,调优简单,调优过程中使用真实硬件环境获取性能数据,调优结果可靠,不会导致性能回退。
[0187]
另一方面,基于遗传算法的策略调优。调优目标可定制,遗传算法挑选每一代精英个体进行下一代调优,优化收敛快,调优效果好。
[0188]
另一方面,在调优过程中,支持离散调优,中断重启可以根据每个stage记录的workflow,重新恢复到上一次调优的位置继续调优。调优持续时间长,支持离散调优可提高调优效率和调优体验。
[0189]
另一方面,在调优过程中可以基于条件强制退出调优任务并拿到当前调优时间段内的最优结果。假如用户设定了调优时间,当调优任务还未结束但时间将要耗尽时,也能得
到一个次优解,不至于一无所获。
[0190]
相应于上述方法实施例给出的方法,本技术实施例还提供了相应的装置,包括用于执行上述实施例相应的模块。所述模块可以是软件,也可以是硬件,或者是软件和硬件结合。
[0191]
请参阅图13,为本技术实施例中模型处理装置的一个实施例,该模型处理装置包括:
[0192]
获取单元1301,用于获取第一模型;
[0193]
拆分单元1302,用于拆分第一模型,得到至少一个第一子图;
[0194]
寻优单元1303,用于基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图,至少一个第一子图与至少一个第二子图一一对应;
[0195]
获取单元1301,还用于基于至少一个第二子图获取第二模型。
[0196]
本实施例中,模型处理装置中各单元所执行的操作与前述图5至图12所示实施例中描述的类似,此处不再赘述。
[0197]
本实施例中,拆分单元1302通过拆分第一模型,得到至少一个第一子图,寻优单元1303基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图,获取单元1301基于至少一个第二子图获取第二模型。优化过程中减少人工操作,降低用户掌握专业的性能优化技能的要求。
[0198]
请参阅图14,本技术实施例中模型处理装置另一实施例包括:
[0199]
获取单元1401,用于获取第一模型;
[0200]
拆分单元1402,用于拆分第一模型,得到至少一个第一子图;
[0201]
寻优单元1403,用于基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图,至少一个第一子图与至少一个第二子图一一对应;
[0202]
获取单元1401,还用于基于至少一个第二子图获取第二模型。
[0203]
本实施例中的模型处理装置还包括:
[0204]
记录单元1404,用于当拆分第一模型,得到至少一个第一子图时,记录第一工作流;记录单元1404,还用于当基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图时,记录第二工作流;记录单元1404,还用于当基于至少一个第二子图获取第二模型时,纪录第三工作流。
[0205]
读取单元1405,用于读取工作流,工作流包括第一工作流、第二工作流或第三工作流中的至少一种;恢复至记录工作流时子图的状态,子图包括第一子图、第二子图、第三子图、第四子图或第五子图中的至少一种。
[0206]
提示单元1406,用于若第二性能数值与第一性能数值的差值超过第三预设阈值,则输出提示信息,提示信息用于指示第一模型调优成功。
[0207]
可选地,寻优单元1403包括:
[0208]
调整子单元14031,用于使用多个第一策略对第一子图进行调整,得到多个第三子图;
[0209]
选择子单元14032,用于根据多个第三子图的性能数值选择多个第三子图中的第四子图;
[0210]
调整子单元14031,还用于多个第二策略对第四子图进行调整,得到多个第五子
图;
[0211]
选择子单元14032,还用于从多个第五子图中选择性能数值满足预设条件的子图作为优化后的第二子图。
[0212]
可选地,调整子单元14031重复执行调整的步骤,选择子单元14032重复执行选择的步骤至重复执行的次数大于或等于第一预设阈值。
[0213]
可选地,选择子单元14032,具体用于运行多个第三子图得到多个性能数值;选择子单元14032,具体用于确定多个第三子图中性能数值大于或等于第二预设阈值的子图为第四子图。
[0214]
可选地,第一模型包括第一人工智能ai算子以及第二ai算子;拆分单元1402,具体用于基于第二ai算子为拆分点拆分第一ai算子,得到至少一个第一子图。
[0215]
可选地,获取单元1401,具体用于合并至少一个第二子图,得到第二模型。
[0216]
可选地,获取单元1401,还用于获取第一模型的第一性能数值与第二模型的第二性能数值。
[0217]
本实施例中,模型处理装置中各单元所执行的操作与前述图5至图12所示实施例中描述的类似,此处不再赘述。
[0218]
本实施例中,一方面,通过寻优单元1403基于遗传算法对至少一个第一子图进行寻优操作,得到优化后的至少一个第二子图,优化过程中减少人工操作,降低用户掌握专业的性能优化技能的要求。另一方面,运行通过寻优操作得到的子图,并根据运行后的性能数值选择第二子图,即通过子图的实际上板运行可以自动选择性能较优的第二子图,减少现有技术中理论预估存在的误差(例如未考虑的运行时硬件限制、算子实现质量等)。
[0219]
图15是本技术实施例提供的模型处理装置的硬件结构示意图。图15所示的模型处理装置1500(该装置1500具体可以是一种计算机设备)包括存储器1501、处理器1502、通信接口1503以及总线1504。其中,存储器1501、处理器1502、通信接口1503通过总线1504实现彼此之间的通信连接。
[0220]
存储器1501可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1501可以存储程序,当存储器1501中存储的程序被处理器1502执行时,处理器1502和通信接口1503用于执行本技术实施例的模型处理方法的各个步骤。
[0221]
处理器1502可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的模型处理装置中的单元所需执行的功能,或者执行本技术方法实施例的模型处理方法。
[0222]
处理器1502还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的模型处理方法的各个步骤可以通过处理器1502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1502还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是
微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1501,处理器1502读取存储器1501中的信息,结合其硬件完成本技术实施例的模型处理装置中包括的单元所需执行的功能,或者执行本技术方法实施例的模型处理方法。
[0223]
通信接口1503使用例如但不限于收发器一类的收发装置,来实现装置1500与其他设备或通信网络之间的通信。例如,可以通过通信接口1503获取训练数据(如本技术实施例所述的训练图像)。
[0224]
总线1504可包括在装置1500各个部件(例如,存储器1501、处理器1502、通信接口1503)之间传送信息的通路。
[0225]
应注意,尽管图15所示的装置1500仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置1500还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置1500还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置1500也可仅仅包括实现本技术实施例所必须的器件,而不必包括图15中所示的全部器件。
[0226]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0227]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0228]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0229]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1