CN116432691A - 基于机器学习框架的模型训练方法及相关设备 - Google Patents
基于机器学习框架的模型训练方法及相关设备 Download PDFInfo
- Publication number
- CN116432691A CN116432691A CN202111680611.1A CN202111680611A CN116432691A CN 116432691 A CN116432691 A CN 116432691A CN 202111680611 A CN202111680611 A CN 202111680611A CN 116432691 A CN116432691 A CN 116432691A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- learning model
- loss function
- layer
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 354
- 238000012549 training Methods 0.000 title claims abstract description 151
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000006870 function Effects 0.000 claims description 236
- 238000004364 calculation method Methods 0.000 claims description 50
- 238000004422 calculation algorithm Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 238000011161 development Methods 0.000 abstract description 9
- 239000002243 precursor Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000011478 gradient descent method Methods 0.000 description 3
- 239000002096 quantum dot Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011549 displacement method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于机器学习框架的模型训练方法及相关设备,应用于包括机器学习框架的电子设备,所述机器学习框架包括数据结构模块、量子模块和经典模块,所述方法包括:调用所述数据结构模块获取输入的训练数据,创建包括所述训练数据的张量数据,并调用所述量子模块和/或所述经典模块创建机器学习模型;将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层;将所述机器学习模型的输出结果输入所述训练层,以对所述机器学习模型的参数进行更新,得到训练后的所述机器学习模型。该技术方案可以提高对于不同机器学习模型或其不同应用场景的训练开发效率。
Description
技术领域
本发明属于量子计算技术领域,特别是涉及一种基于机器学习框架的模型训练方法及相关设备。
背景技术
机器学习模型由于其优异的性能而被广泛应用于人工智能研究,通过利用标注好的训练数据对机器学习模型进行训练,可以得到符合预期的机器学习模型,进而将其用于语音识别、图像识别等具体应用工作。机器学习模型无须人为设立其用于具体应用场景的标准,通过训练机器学习模型可以自己建立相应的工作标准,对于不同应用场景具有较好的适应性。随着量子计算的发展,越来越多的包含量子计算层的机器学习模型开始出现。
相关技术中,对于不同的机器学习模型尤其是包含量子计算层的机器学习模型,或机器学习模型应用于不同场景时,需要对训练方法作较多变更以得到合适的训练方法,开发效率低。
发明内容
本发明的目的是提供一种基于机器学习框架的模型训练方法及相关设备,旨在训练不同的机器学习模型或应用于不同场景的机器学习模型时,减少机器学习模型的训练方法的变更,提高开发效率。
为了实现上述目的,本发明实施例的第一方面,提供一种基于机器学习框架的模型训练方法,应用于包括机器学习框架的电子设备,所述机器学习框架包括数据结构模块、量子模块和经典模块,所述方法包括:
调用所述数据结构模块获取输入的训练数据,创建包括所述训练数据的张量数据,并调用所述量子模块和/或所述经典模块创建机器学习模型;
将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层;
将所述机器学习模型的输出结果输入所述训练层,以对所述机器学习模型的参数进行更新,得到训练后的所述机器学习模型。
可选地,所述训练层包括损失函数层和优化器层,所述经典模块包括:
损失函数单元,被配置为计算所述机器学习模型的损失函数;
优化器单元,被配置为在训练所述机器学习模型时基于所述损失函数更新所述机器学习模型的参数,以对所述机器学习模型进行优化;
所述调用所述经典模块创建所述机器学习模型的训练层,包括:
调用所述损失函数单元创建所述损失函数层;
调用所述优化器单元创建所述优化器层。
可选地,所述将所述机器学习模型的输出结果输入所述训练层,以对所述机器学习模型的参数进行更新,得到训练后的所述机器学习模型,包括:
将所述机器学习模型的输出结果输入所述损失函数层,以计算所述机器学习模型的损失函数的值;
在确定所述损失函数的值不满足预设条件时,将所述损失函数的值输入所述优化器层,以基于所述损失函数的值更新所述机器学习模型的参数;
确定更新所述参数后的所述机器学习模型的所述损失函数的值;
在确定该损失函数的值满足预设条件时,将更新所述参数后的所述机器学习模型作为训练后的所述机器学习模型。
可选地,所述基于所述损失函数的值更新所述机器学习模型的参数,包括:
基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度;
基于所述梯度和梯度下降算法更新所述机器学习模型的参数。
可选地,若调用所述量子模块创建机器学习模型,所述机器学习模型包括基于所述量子模块创建的量子计算层,所述基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度,包括:
基于所述损失函数的值计算所述损失函数相对于所述量子计算层的输出结果的第一梯度,并计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度;
将所述第一梯度与所述第二梯度相乘得到所述损失函数相对于所述机器学习模型的参数的梯度。
可选地,所述计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度,包括:
计算所述量子计算层的参数加上第一偏置量后所述量子计算层的第一输出结果,并计算所述量子计算层的参数减去第二偏置量后所述量子计算层的第二输出结果;
基于所述第一输出结果与所述第二输出结果的差值,计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度。
可选地,所述将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层之后,所述方法还包括:
以所述损失函数、所述机器学习模型的参数、以及基于该参数计算得到所述损失函数过程中的每一子步骤的输出结果为计算节点,并以该损失函数、该参数、该子步骤的输出结果之间的关系作为边,构建有向的计算图;
所述基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度,包括:
基于所述损失函数的值和所述计算图计算该损失函数相对于所述机器学习模型的参数的梯度。
可选地,所述基于所述损失函数的值和所述计算图计算该损失函数相对于所述机器学习模型的参数的梯度,包括:
确定所述计算图中所述损失函数对应计算节点至所述机器学习模型的参数对应计算节点的路径;
基于所述损失函数的值计算该路径上非叶子节点的每一计算节点相对于该计算节点的前驱节点的中间梯度;
将计算得到的所有所述中间梯度相乘得到所述损失函数相对于所述参数的梯度。
本发明实施例的第二方面,提供一种基于机器学习框架的模型训练装置,应用于包括机器学习框架的电子设备,所述机器学习框架包括数据结构模块、量子模块和经典模块,所述装置包括:
创建模块,用于调用所述数据结构模块获取输入的训练数据,创建包括所述训练数据的张量数据,并调用所述量子模块和/或所述经典模块创建机器学习模型;
输入训练模块,用于将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层;
参数更新模块,用于将所述机器学习模型的输出结果输入所述训练层,并基于所述训练层的输出结果对所述机器学习模型的参数进行更新,以得到训练后的所述机器学习模型。
可选地,所述训练层包括损失函数层和优化器层,所述经典模块包括:
损失函数单元,被配置为计算所述机器学习模型的损失函数;
优化器单元,被配置为在训练所述机器学习模型时基于所述损失函数更新所述机器学习模型的参数,以对所述机器学习模型进行优化;
可选地,所述输入训练模块还用于:
调用所述损失函数单元创建所述损失函数层;
调用所述优化器单元创建所述优化器层。
可选地,所述参数更新模块还用于:
将所述机器学习模型的输出结果输入所述损失函数层,以计算所述机器学习模型的损失函数的值;
在确定所述损失函数的值不满足预设条件时,将所述损失函数的值输入所述优化器层,以基于所述损失函数的值更新所述机器学习模型的参数;
确定更新所述参数后的所述机器学习模型的所述损失函数的值;
在确定该损失函数的值满足预设条件时,将更新所述参数后的所述机器学习模型作为训练后的所述机器学习模型。
可选地,所述参数更新模块还用于:
基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度;
基于所述梯度和梯度下降算法更新所述机器学习模型的参数。
可选地,若调用所述量子模块创建机器学习模型,所述机器学习模型包括基于所述量子模块创建的量子计算层,所述参数更新模块还用于:
基于所述损失函数的值计算所述损失函数相对于所述量子计算层的输出结果的第一梯度,并计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度;
将所述第一梯度与所述第二梯度相乘得到所述损失函数相对于所述机器学习模型的参数的梯度。
可选地,所述参数更新模块还用于:
计算所述量子计算层的参数加上第一偏置量后所述量子计算层的第一输出结果,并计算所述量子计算层的参数减去第二偏置量后所述量子计算层的第二输出结果;
基于所述第一输出结果与所述第二输出结果的差值,计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度。
可选地,所述装置还包括:
计算图构建模块,用于在所述输入训练模块将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层之后,以所述损失函数、所述机器学习模型的参数、以及基于该参数计算得到所述损失函数过程中的每一子步骤的输出结果为计算节点,并以该损失函数、该参数、该子步骤的输出结果之间的关系作为边,构建有向的计算图;
所述参数更新模块还用于:
基于所述损失函数的值和所述计算图计算该损失函数相对于所述机器学习模型的参数的梯度。
可选地,所述参数更新模块还用于:
确定所述计算图中所述损失函数对应计算节点至所述机器学习模型的参数对应计算节点的路径;
基于所述损失函数的值计算该路径上非叶子节点的每一计算节点相对于该计算节点的前驱节点的中间梯度;
将计算得到的所有所述中间梯度相乘得到所述损失函数相对于所述参数的梯度。
本发明实施例的第三方面,提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述第一方面中任一项所述方法的步骤。
本发明实施例的第四方面,提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述第一方面中任一项所述方法的步骤。
基于上述技术方案,无论对于不同的机器学习模型,还是机器学习模型应用于不同场景时,均可以通过调用经典模块创建机器学习模型的训练层,进而将张量数据输入机器学习模型,再将机器学习模型的训练结果输入训练层,便可以对创建的机器学习模型进行训练。训练层通过调用经典模块即可实现创建,无需从零开始创建,减少了创建训练层所需的步骤和时间,进而在变更机器学习模型或不同应用场景时提高了训练的开发效率。同时对于不同的机器学习模型或其不同的应用场景,通过数据结构模块创建对应训练数据的张量数据,且机器学习模型基于量子模块和/或经典模块创建,使得张量数据、机器学习模型可以与训练层遵循基于同一机器学习框架的标准,减少其相互之前的适配操作,进而提高训练机器学习模型的开发效率。
附图说明
图1是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法的计算机终端的硬件结构框图。
图2是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法的流程图。
图3是根据一示例性实施例示出的一种机器学习框架的框图。
图4是根据一示例性实施例示出的一种经典模块的框图。
图5是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法中步骤S22的流程图。
图6是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法中步骤S23的流程图。
图7是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法中步骤S232的流程图。
图8是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法中步骤S2321的流程图。
图9是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法中步骤S23211的流程图。
图10是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法的另一流程图。
图11是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法的另一流程图。
图12是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法的另一流程图。
图13是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法中步骤S125的流程图。
图14是根据一示例性实施例示出的一种计算图。
图15是根据一示例性实施例示出的一种基于机器学习框架的模型训练装置的框图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明实施例首先提供了一种基于机器学习框架的模型训练方法,该方法可以应用于电子设备,如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图1是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储基于量子线路的一种基于机器学习框架的模型训练方法的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输装置106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的一种基于机器学习框架的模型训练方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责运行量子程序进而实现量子计算。而量子程序是由量子语言如QRunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现量子计算。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,因受限于量子设备硬件的发展,通常需要进行量子计算模拟以验证量子算法、量子应用等等。量子计算模拟即借助普通计算机的资源搭建的虚拟架构(即量子虚拟机)实现特定问题对应的量子程序的模拟运行的过程。通常,需要构建特定问题对应的量子程序。本发明实施例所指量子程序,即是经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路作为量子程序的一种体现方式,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线)、以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个量子程序整体上对应有一条总的量子线路,本发明所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序可以由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至成千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,量子逻辑门包括单比特量子逻辑门,如Hadamard门(H门,阿达马门)、泡利-X门(X门,泡利X门)、泡利-Y门(Y门,泡利Y门)、泡利-Z门(Z门,泡利Z门)、RX门(RX旋转门)、RY门(RY旋转门)、RZ门(RZ旋转门)等等;多比特量子逻辑门,如CNOT门、CR门、iSWAP门、Toffoli门等等。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态右矢对应的向量进行计算。例如,量子态右矢|0>对应的向量可以为量子态右矢|1>对应的向量可以为/>
图2是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法的流程示意图。参见图2,本实施例提供一种基于机器学习框架的模型训练方法,该方法可以应用于包括如图3所示的机器学习框架30的电子设备,所述机器学习框架30包括数据结构模块31、量子模块32和经典模块33,所述方法包括:
S21,调用所述数据结构模块获取输入的训练数据,创建包括所述训练数据的张量数据,并调用所述量子模块和/或所述经典模块创建机器学习模型。
S22,将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层。
S23,将所述机器学习模型的输出结果输入所述训练层,以对所述机器学习模型的参数进行更新,得到训练后的所述机器学习模型。
具体来讲,机器学习框架集成了众多用于创建和训练机器学习模型的函数集,通过其定义的接口可以方便的调用这些函数实现对机器学习模型的相关操作。如图3所示,所述机器学习框架30可以包括:
数据结构模块31,被配置为创建用于输入机器学习模型的张量数据,以及对所述张量数据执行运算;
量子模块32,被配置为创建用于创建机器学习模型的量子计算层;
经典模块33,被配置为创建用于创建机器学习模型的经典计算层、用于封装所述量子计算层和所述经典计算层的抽象类层、用于训练优化所述机器学习模型的机器学习模型训练层。
具体来讲,数据结构模块31定义了张量数据的数据结构,通过调用数据结构模块31,可以将输入的数据转化为张量数据,以用于输入机器学习模型进行正向计算。数据结构模块31还可以定义张量数据之间的运算例如数学运算和逻辑运算等,进而可以调用数据结构模块31基于张量数据之间的运算关系创建机器学习模型的经典计算层,例如经典神经网络的全连接层通过函数y=wx+b定义了输入数据x和输出数据y之间的关系,其中w和b为参数,通过将输入数据x、参数w、参数b转化为张量数据,并调用数据结构模块31对这些张量数据执行与该函数对应的运算,可以构建全连接层。
在一种可能的实施方式中,数据结构模块31可以用于将输入数据按照预设的数据结构排列以创建用于输入所述机器学习模型的张量数据,以及创建以所述预设的数据结构排列且数值确定的用于输入所述机器学习模型的张量数据。进而在步骤S21中,对于输入的训练数据,可以将训练数据按照预设的数据结构排列以得到张量数据,训练数据可以作为张量数据的一部分存储。例如获取的训练数据为1,2,3,可以将输入的该训练数据转化为向量结构[1,2,3]作为张量数据的一部分。
需要说明的是,张量数据除包括按照预设的数据结构排列的数据值外,还可以包括计算得到该数据值的张量数据的信息以及该张量数据相对于包含所述数据值的张量数据的梯度函数,其中计算得到该数据值的张量数据的信息可以包括该张量数据的变量、数据值存储地址以及数据值等,只要其表明该张量数据对应节点是计算得到该数据值的张量数据对应节点的前驱节点即可。以上述函数关系y=wx+b为例,对于张量数据y,其包括y对应的数据值如[1,2,3],还包括计算得到y的w、x、b的张量数据的信息以及y分别相对于w、x、b的梯度函数,在一种可能的实施方式中,该信息可以包括w、x和b的数据值存储地址,张量数据y包括y相对于w的梯度函数x,y相对于x的梯度函数w,以及y相对于b的梯度函数1,进而在训练机器学习模型时,通过反向传播计算y分别相对于w、x、b的梯度值,具体可以直接从张量数据y中获取y的数据值,以及w、x、b的数据值和对应的梯度函数,通过这些数据值和对应的梯度函数计算y分别相对于w、x、b的梯度值。
具体来讲,对于量子模块32,可以通过调用该量子模块32创建量子计算层,量子计算层为包含量子程序的程序模块,可以用于实现对应量子程序的量子计算,通过对量子程序按照一定的标准进行封装,使得量子计算层便于在创建和训练机器学习模型时进行使用。对于机器学习模型通过量子计算实现的部分,均可以理解为对应的量子计算层。量子程序为实现量子计算的程序,可以通过调用量子模块32创建按特定顺序作用于量子比特的量子逻辑门得到量子程序,并对量子程序进行封装得到量子计算层。
具体来讲,经典计算层为机器学习模型中的经典计算部分,其可以是通过经典模块33对创建好的经典计算程序按照一定标准进行封装得到,使得经典计算层便于在训练机器学习模型时进行使用。在创建好量子计算层和经典计算层后,可以通过经典模块33对其进行封装,以创建符合一定标准的抽象类层,抽象类层通过编程语言中的类(class)的方法实现,通过对量子计算层和经典计算层封装可以创建符合一定标准的机器学习模型,例如创建的抽象类层定义了正向运算机器学习模型的方式,便于在训练机器学习模型时对机器学习模型进行正向运算以得到用于计算损失函数的计算结果,同时也可以得到反向计算时进行梯度计算的顺序关系。经典模块33还可以用于创建机器学习模型的训练层对机器学习模型进行训练。
在步骤S21中,除调用数据结构模块31创建张量数据外,还可以调用量子模块32创建量子计算层,得到包括该量子计算层的纯量子机器学习模型,或调用经典模块33创建经典计算层,得到包括该经典计算层的纯经典机器学习模型,也可以同时调用量子模块32和经典模块33创建量子计算层和经典计算层,得到包括该量子计算层和经典计算层的混合机器学习模型。
创建训练数据和机器学习模型后,执行步骤S22,将张量数据输入机器学习模型,并正向运行机器学习模型得到机器学习模型对张量数据进行计算后的输出结果。并且,为训练机器学习模型,调用经典模块33创建机器学习模型的训练层。
可选地,所述训练层包括损失函数层和优化器层,如图4所示,所述经典模块33包括:
损失函数单元331,被配置为计算所述机器学习模型的损失函数;
优化器单元332,被配置为在训练所述机器学习模型时基于所述损失函数更新所述机器学习模型的参数,以对所述机器学习模型进行优化。
可选地,如图5所示,调用所述经典模块创建所述机器学习模型的训练层,包括:
S221,调用所述损失函数单元创建所述损失函数层;
S222,调用所述优化器单元创建所述优化器层。
具体来讲,损失函数单元331用于计算机器学习模型的损失函数,例如可以计算机器学习模型的正向运算结果与标签数据的平方差作为损失函数,也可以计算该正向运算结果与标签数据的二元交叉熵(Binary Cross Entropy)作为损失函数。优化器单元332则用于根据损失函数相对于机器学习模型的参数的梯度,利用梯度下降算法更新机器学习模型的参数对其进行优化。例如优化器采用的梯度下降算法可以为随机梯度下降算法(Stochastic Gradient Descent,SGD),自适应梯度算法(Adaptive gradient algorithm,Adagrad)、自适应矩估计(Adaptive Moment Estimation,Adam)中的任意一种,当然还可以采用其它的算法更新机器学习模型的参数,本发明对于损失函数单元331可以计算哪些种类的损失函数以及优化器单元332采用何种方法更新参数不作具体限制。
为实现对机器学习模型的训练,可以执行步骤S221,调用所述损失函数单元331创建所述损失函数层,损失函数层为封装好的计算模块,其定义了损失函数的计算方式,进而在机器学习模型的输出结果输入到损失函数层时,可以根据损失函数层定义的计算方式计算机器学习模型的损失函数。创建好损失函数层之后可以进入执行步骤S222,调用所述优化器单元332创建所述优化器层,以在输出结果输入到损失函数层,计算出损失函数之后,根据损失函数更新机器学习模型的参数,直至得到合适的参数使得机器学习模型能达到预期的效果,完成对机器学习模型的优化。
创建好训练层后,进入执行步骤S23,将机器学习模型的输出结果输入到前述训练层,按照一定的方法对机器学习模型的参数进行更新,如果更新参数后的机器学习模型满足预设条件,例如其对应的损失函数的值小于阈值,则停止更新参数,并将更新参数后的机器学习模型作为训练后的机器学习模型。如果更新参数后的机器学习模型不满足预设条件,例如其对应的损失函数的值大于阈值,则可以继续更新参数,直至得到满足预设条件的机器学习模型为止。
基于上述技术方案,无论对于不同的机器学习模型,还是机器学习模型应用于不同场景时,均可以通过调用经典模块33创建机器学习模型的训练层,进而将张量数据输入机器学习模型,再将机器学习模型的训练结果输入训练层,便可以对创建的机器学习模型进行训练。训练层通过调用经典模块33即可实现创建,无需从零开始创建,减少了创建训练层所需的步骤和时间,进而在变更机器学习模型或不同应用场景时提高了训练的开发效率。同时对于不同的机器学习模型或其不同的应用场景,通过数据结构模块31创建对应训练数据的张量数据,且机器学习模型基于量子模块32和/或经典模块33创建,使得张量数据、机器学习模型可以与训练层遵循基于同一机器学习框架的标准,减少其相互之前的适配操作,进而提高训练机器学习模型的开发效率。并且,通过上述方案,无论对于纯量子机器学习模型还是纯经典机器学习模型,或者同时包括经典计算层和量子计算层的混合机器学习模型,均可以提高对其训练的开发效率,具有较广的适用范围。
可选地,如图6所示,将所述机器学习模型的输出结果输入所述训练层,以对所述机器学习模型的参数进行更新,得到训练后的所述机器学习模型,包括:
S231,将所述机器学习模型的输出结果输入所述损失函数层,以计算所述机器学习模型的损失函数的值。
S232,在确定所述损失函数的值不满足预设条件时,将所述损失函数的值输入所述优化器层,以基于所述损失函数的值更新所述机器学习模型的参数。
S233,确定更新所述参数后的所述机器学习模型的所述损失函数的值。
S234,在确定该损失函数的值满足预设条件时,将更新所述参数后的所述机器学习模型作为训练后的所述机器学习模型。
为对创建的机器学习模型进行训练,进入执行步骤S231,将机器学习模型的输出结果输入损失函数层,计算机器学习模型的损失函数的值,损失函数表征机器学习模型的输出结果与符合真实计算情况的标签数据之间的差距。例如训练数据可以包括样本数据和标签数据,样本数据输入机器学习模型得到输出结果后,将输出结果输入损失函数层,计算标签数据与输出结果之间的平方差,并对所有的平方差求和计算损失函数的值。
在步骤S232中,可以通过将损失函数的值与预设的阈值比较,来判断损失函数的值是否满足预设条件,例如在确定损失函数的值大于或等于阈值时,将损失函数的值输入优化器层。当然也可以通过其它方法确定损失函数的值不满足预设条件,只要能通过预设函数的值判断当前的机器学习模型不符合预期即可。不满足预设条件时,将损失函数的值输入优化器层,可以利用损失函数的值求损失函数相对于机器学习模型的参数的梯度,进而基于梯度下降算法更新机器学习模型的参数。
在步骤S233中,在对机器学习模型更新参数后,重新计算其对应的损失函数的值。并重新判断损失函数的值是否满足预设条件,如果不满足,可以返回执行步骤S232,继续根据损失函数的值更新机器学习模型的参数,如果满足,则可以进入执行步骤S234。
在步骤S234中,确定损失函数的值满足预设条件时,例如损失函数的值小于阈值,则表示机器学习模型对训练数据中样本数据的输出结果与标签数据的差距很小,机器学习模型能达到预期的应用效果,进而将更新参数后的机器学习模型作为训练后的机器学习模型,停止更新参数。
可选地,如图7所示,基于所述损失函数的值更新所述机器学习模型的参数,包括:
S2321,基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度。
S2322,基于所述梯度和梯度下降算法更新所述机器学习模型的参数。
在步骤S2321中,例如可以求损失函数相对于其参数的偏导数以得到损失函数相对参数的梯度。在步骤S2322中,根据求得的梯度,带入梯度下降算法的相关公式中,更新机器学习模型的参数。例如梯度下降算法可以为批量梯度下降法(Batch GradientDescent)、随机梯度下降法(Stochastic Gradient Descent)等。梯度反映了损失函数变化最快的方向,通过梯度下降算法可以快速的变更参数,进而提高损失函数的值变化的速度,以快速的找到满足预设条件的损失函数的值对应的参数,得到符合要求的机器学习模型。
可选地,如图9所示,若调用所述量子模块32创建机器学习模型,所述机器学习模型包括基于所述量子模块32创建的量子计算层,所述基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度,包括:
S23211,基于所述损失函数的值计算所述损失函数相对于所述量子计算层的输出结果的第一梯度,并计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度。
S23212,将所述第一梯度与所述第二梯度相乘得到所述损失函数相对于所述机器学习模型的参数的梯度。
机器学习模型包括量子计算层,例如机器学习模型为仅包括量子计算层的纯量子机器学习模型,或同时包括量子计算层和经典计算层的混合机器学习模型,此时,为求得损失函数相对于机器学习模型中量子计算层中的参数的梯度,在步骤S23211中,基于链式求导法则,先求出损失函数相对于量子计算层的输出结果的第一梯度,以及该输出结果相对于量子计算层的参数的第二梯度。再进入执行步骤S23211,将第一梯度与第二梯度相乘得到损失函数相对于量子计算层的参数的梯度。
举例来讲,机器学习模型包括量子计算层以及经典计算层,其中,量子计算层对应的计算函数为f(x;α),经典计算层对应的计算函数为g(x;β),其中x为计算函数的输入数据,α,β为参数。获取的输入数据x1先输入f(x;α),得到y1,再将y1输入g(x;β),得到机器学习模型的输出结果y2。损失函数为y2与标签数据的平方差之和。为计算损失函数相对于参数α的梯度,先计算损失函数相对于y1的第一梯度,以及计算y1相对于α的第二梯度,然后将第一梯度与第二梯度相乘即可得到损失函数相对于参数α的梯度。
可选地,如图9所示,计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度,包括:
S23211a,计算所述量子计算层的参数加上第一偏置量后所述量子计算层的第一输出结果,并计算所述量子计算层的参数减去第二偏置量后所述量子计算层的第二输出结果。
S23211b,基于所述第一输出结果与所述第二输出结果的差值,计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度。
由于难以通过求解析式的方式求量子计算层的输出结果相对于其中的参数的第二梯度,因此采用参数位移的方法,可以提高求得的第二梯度的准确度,并且无论在量子计算层的量子线路运行于虚拟机还是真实量子设备,均可以通过该方法求梯度,具有较广的适配性。具体地,在步骤S23211a中,分别将量子计算层的参数加上和减去第一偏置量以及第二偏置量,求得其分别对应的量子计算层的第一输出结果和第二输出结果,然后执行步骤S23211b,根据第一输出结果与第二输出结果的差值,求得第二梯度。
在一种可能的实施方式中,f(x;α)=<0|UH(x;α)HU(x;α)|0>,x是训练数据,H为观测量,UH(x;α)为U(α)的共轭转置,U(α)对应量子计算层中用于执行特定算法的量子计算的部分。当然在其它可能的实施方式中,也可以采用其它方法求损失函数相对于参数的梯度,例如有限差分法。
在一种可能的实施方式中,参见图10,机器学习模型的量子计算层的量子线路运行于真实的量子芯片时,对于仅包含量子线路的纯量子机器学习模型,为训练该模型,先输入数据,以使得量子芯片所在的量子计算机获取训练数据,然后在真实芯片上运行量子线路进行正向计算,也即正向运算机器学习模型,对量子计算层也即量子层的结果量子态进行测量得到量子层输出的测量值,然后根据测量值进行损失函数的计算,之后为计算梯度,可以采用上述参数位移的方式,在真实芯片上运行量子线路进行梯度计算,根据量子线路分别在参数加上和减去偏置量的计算结果计算梯度,然后根据梯度函数优化参数值,最终得到量子线路的可变参数的参数值,若不满足预设条件,例如此时损失函数的值大于阈值,则可以重复上述过程继续对可变参数进行优化,直至预设条件满足得到符合要求的机器学习模型为止。
在一种可能的实施方式中,参见图11,机器学习模型为神经网络模型,该模型包括经典神经网络模块,量子计算模块A和量子线路模块B的神经网络模型,其中经典神经网络模块为用于实现经典计算的经典计算层,量子计算模块A和量子线路模块B为用于实现量子计算的量子计算层。在正向运算时,将输入数据输入经典神经网络模块和量子计算模块A,再将其输出输入量子线路模块B,最后根据量子线路B的输出计算损失函数。之后为训练模型,进入反向运算流程,计算量子线路模块B的参数梯度、经典神经网络模块的参数梯度以及量子计算模块A的参数梯度,并用梯度下降法分别更新这些模块中的参数。
图12是根据一示例性实施例示出的一种基于机器学习框架的模型训练方法的另一流程图,如图12所示,该方法包括:
S121,调用所述数据结构模块获取输入的训练数据,创建包括所述训练数据的张量数据,并调用所述量子模块和/或所述经典模块创建机器学习模型。
S122,将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层。
S123,以所述损失函数、所述机器学习模型的参数、以及基于该参数计算得到所述损失函数过程中的每一子步骤的输出结果为计算节点,并以该损失函数、该参数、该子步骤的输出结果之间的关系作为边,构建有向的计算图。
S124,将所述机器学习模型的输出结果输入所述损失函数层,以计算所述机器学习模型的损失函数的值。
S125,在确定所述损失函数的值不满足预设条件时,将所述损失函数的值输入所述优化器层,以基于所述损失函数的值和所述计算图计算该损失函数相对于所述机器学习模型的参数的梯度;基于所述梯度和梯度下降算法更新所述机器学习模型的参数。
S126,确定更新所述参数后的所述机器学习模型的所述损失函数的值。
S127,在确定该损失函数的值满足预设条件时,将更新所述参数后的所述机器学习模型作为训练后的所述机器学习模型。
步骤S121和步骤S122可以分别参考步骤S21和步骤S22。步骤S124至步骤S127可以分别参见步骤S231至步骤S234。
在步骤S123中,计算图是一种有向无环图,以数据结构的图(graph)的形式表示各数据之间的关系,由计算节点和边组成,在构建上述计算图时,按照机器学习模型正向计算的顺序,将其损失函数、参数、以及机器学习模型正向计算过程中通过参数计算得到输出结果及损失函数的每一子步骤的输出结果作为计算节点,并将其计算关系作为边,得到上述计算图,该计算图中,前驱节点的数据为其后继节点的数据的因变量。
进而在步骤S125中,根据计算图示出的计算关系,基于损失函数的值计算损失函数相对于参数的梯度。
可选地,如图13所示,基于所述损失函数的值和所述计算图计算该损失函数相对于所述机器学习模型的参数的梯度,包括:
S1251,确定所述计算图中所述损失函数对应计算节点至所述机器学习模型的参数对应计算节点的路径。
S1252,基于所述损失函数的值计算该路径上非叶子节点的每一计算节点相对于该计算节点的前驱节点的中间梯度。
S1253,将计算得到的所有所述中间梯度相乘得到所述损失函数相对于所述参数的梯度。
在步骤S1251中,可以以损失函数为起点,选择的参数为终点,确定两者之间的最短路径。进而在步骤S1252中,对于该路径上的每一个计算节点,计算该计算节点相对于其前驱节点的中间梯度,由于非叶子节点没有前驱节点,故非叶子节点无法计算相应的中间梯度,且非叶子节点一般为参数,作为路径的终点也无需计算梯度。
计算得到中间梯度后,执行步骤S1253,将前述路径对应的所有中间梯度相乘,根据链式求导法则即可得到损失函数相对于其参数的梯度。
举例来讲,参见图14,其对应机器学习模型包括量子计算层qvc以及经典计算层fc。在该计算图中,有多个张量数据Qtensor,其中训练数据对应的张量数据为input,通过公式k=input/255得到张量数据k,故将input作为k的前驱节点,并且在k对应计算节点中保存其前驱节点input的信息,通过nodes[0]:prev:input表示,并保存k相对于input的梯度计算公式,通过df:grad_fun_of_input表示。跟据param和k,可以计算得到x=qvc(k),qvc表示机器学习模型的量子计算层的量子线路,param为量子计算层中的参数,故k和param作为x的前驱节点,在x对应的计算节点中保存param的信息和梯度计算公式,分别通过nodes[0]:prev:param和df:grad_fun_of_q_param表示,并保存k的信息和梯度计算公式,通过nodes[1]:prev:k和df:grad_fun_of_q_k。根据x,计算得到y=fc(x),fc表示机器学习模型的经典计算层的经典计算程序,例如可以为全连接层,其输出y通过x、W、b计算得到,W和b为经典计算层的参数,例如fc()对应计算公式可以为y=W*x+b,故将张量数据形式的W,b以及x作为y的前驱节点,同时在y对应计算节点中,保存W的信息以及梯度计算公式,通过nodes[0]:prev:W和df:grad_fun_of_W()表示,保存b的信息以及梯度计算公式,通过nodes[1]:prev:b和df:grad_fun_of_b()表示,保存x的信息以及梯度计算公式,通过nodes[2]:prev:x和df:grad_fun_of_x()表示。通过y可以计算得到损失函数的值loss=LossFunc(y,label),LossFunc为损失函数,例如其可以为y和label的平方差之和,将y作为loss的前驱节点,同时在loss对应计算节点中保存y的信息和梯度计算公式,通过nodes[0]:prev:y和df:grad_fun_of_y()表示。由于不需要计算loss相对于标签数据label的梯度,故label可以不作为计算节点加入计算图中。具体地,可以通过链表存储前驱节点和后继节点的关系,通过数组存储一个计算节点的多个前驱节点的信息
在需要计算梯度时,以计算loss相对于param的梯度为例,首先确定loss至param的路径,依次遍历loss、y、x、param对应计算节点,根据其保存的梯度函数和前驱节点的信息,计算loss相对于y的中间梯度,y相对于x的中间梯度,以及x相对于param的中间梯度,最后将这3个中间梯度相乘即可得到loss相对于param的梯度。
图15是根据一示例性实施例示出的一种基于机器学习框架的模型训练装置的框图,可以应用于包括如图3所示的机器学习框架30的电子设备,所述机器学习框架30包括数据结构模块31、量子模块32和经典模块33,如图15所示,该装置150包括:
创建模块151,用于调用所述数据结构模块31获取输入的训练数据,创建包括所述训练数据的张量数据,并调用所述量子模块32和/或所述经典模块33创建机器学习模型;
输入训练模块152,用于将所述张量数据输入所述机器学习模型,并调用所述经典模块33创建所述机器学习模型的训练层;
参数更新模块153,用于将所述机器学习模型的输出结果输入所述训练层,并基于所述训练层的输出结果对所述机器学习模型的参数进行更新,以得到训练后的所述机器学习模型。
可选地,如图4所示,所述训练层包括损失函数层和优化器层,所述经典模块33包括:
损失函数单元331,被配置为计算所述机器学习模型的损失函数;
优化器单元332,被配置为在训练所述机器学习模型时基于所述损失函数更新所述机器学习模型的参数,以对所述机器学习模型进行优化;
可选地,输入训练模块152还用于:
调用所述损失函数单元331创建所述损失函数层;
调用所述优化器单元332创建所述优化器层。
可选地,参数更新模块153还用于:
将所述机器学习模型的输出结果输入所述损失函数层,以计算所述机器学习模型的损失函数的值;
在确定所述损失函数的值不满足预设条件时,将所述损失函数的值输入所述优化器层,以基于所述损失函数的值更新所述机器学习模型的参数;
确定更新所述参数后的所述机器学习模型的所述损失函数的值;
在确定该损失函数的值满足预设条件时,将更新所述参数后的所述机器学习模型作为训练后的所述机器学习模型。
可选地,参数更新模块153还用于:
基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度;
基于所述梯度和梯度下降算法更新所述机器学习模型的参数。
可选地,若调用所述量子模块32创建机器学习模型,所述机器学习模型包括基于所述量子模块32创建的量子计算层,参数更新模块153还用于:
基于所述损失函数的值计算所述损失函数相对于所述量子计算层的输出结果的第一梯度,并计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度;
将所述第一梯度与所述第二梯度相乘得到所述损失函数相对于所述机器学习模型的参数的梯度。
可选地,参数更新模块153还用于:
计算所述量子计算层的参数加上第一偏置量后所述量子计算层的第一输出结果,并计算所述量子计算层的参数减去第二偏置量后所述量子计算层的第二输出结果;
基于所述第一输出结果与所述第二输出结果的差值,计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度。
可选地,所述装置150还包括:
计算图构建模块,用于在所述输入训练模块152将所述张量数据输入所述机器学习模型,并调用所述经典模块33创建所述机器学习模型的训练层之后,以所述损失函数、所述机器学习模型的参数、以及基于该参数计算得到所述损失函数过程中的每一子步骤的输出结果为计算节点,并以该损失函数、该参数、该子步骤的输出结果之间的关系作为边,构建有向的计算图;
参数更新模块153还用于:
基于所述损失函数的值和所述计算图计算该损失函数相对于所述机器学习模型的参数的梯度。
可选地,参数更新模块153还用于:
确定所述计算图中所述损失函数对应计算节点至所述机器学习模型的参数对应计算节点的路径;
基于所述损失函数的值计算该路径上非叶子节点的每一计算节点相对于该计算节点的前驱节点的中间梯度;
将计算得到的所有所述中间梯度相乘得到所述损失函数相对于所述参数的梯度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明的再一实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述基于机器学习框架的模型训练方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的再一实施例还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述基于机器学习框架的模型训练方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
调用所述数据结构模块获取输入的训练数据,创建包括所述训练数据的张量数据,并调用所述量子模块和/或所述经典模块创建机器学习模型;
将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层;
将所述机器学习模型的输出结果输入所述训练层,以对所述机器学习模型的参数进行更新,得到训练后的所述机器学习模型。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (11)
1.一种基于机器学习框架的模型训练方法,其特征在于,应用于包括机器学习框架的电子设备,所述机器学习框架包括数据结构模块、量子模块和经典模块,所述方法包括:
调用所述数据结构模块获取输入的训练数据,创建包括所述训练数据的张量数据,并调用所述量子模块和/或所述经典模块创建机器学习模型;
将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层;
将所述机器学习模型的输出结果输入所述训练层,以对所述机器学习模型的参数进行更新,得到训练后的所述机器学习模型。
2.如权利要求1所述的方法,其特征在于,所述训练层包括损失函数层和优化器层,所述经典模块包括:
损失函数单元,被配置为计算所述机器学习模型的损失函数;
优化器单元,被配置为在训练所述机器学习模型时基于所述损失函数更新所述机器学习模型的参数,以对所述机器学习模型进行优化;
所述调用所述经典模块创建所述机器学习模型的训练层,包括:
调用所述损失函数单元创建所述损失函数层;
调用所述优化器单元创建所述优化器层。
3.如权利要求2所述的方法,其特征在于,所述将所述机器学习模型的输出结果输入所述训练层,以对所述机器学习模型的参数进行更新,得到训练后的所述机器学习模型,包括:
将所述机器学习模型的输出结果输入所述损失函数层,以计算所述机器学习模型的损失函数的值;
在确定所述损失函数的值不满足预设条件时,将所述损失函数的值输入所述优化器层,以基于所述损失函数的值更新所述机器学习模型的参数;
确定更新所述参数后的所述机器学习模型的所述损失函数的值;
在确定该损失函数的值满足预设条件时,将更新所述参数后的所述机器学习模型作为训练后的所述机器学习模型。
4.如权利要求3所述的方法,其特征在于,所述基于所述损失函数的值更新所述机器学习模型的参数,包括:
基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度;
基于所述梯度和梯度下降算法更新所述机器学习模型的参数。
5.如权利要求4所述的方法,其特征在于,若调用所述量子模块创建机器学习模型,所述机器学习模型包括基于所述量子模块创建的量子计算层,所述基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度,包括:
基于所述损失函数的值计算所述损失函数相对于所述量子计算层的输出结果的第一梯度,并计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度;
将所述第一梯度与所述第二梯度相乘得到所述损失函数相对于所述机器学习模型的参数的梯度。
6.如权利要求5所述的方法,其特征在于,所述计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度,包括:
计算所述量子计算层的参数加上第一偏置量后所述量子计算层的第一输出结果,并计算所述量子计算层的参数减去第二偏置量后所述量子计算层的第二输出结果;
基于所述第一输出结果与所述第二输出结果的差值,计算所述量子计算层的输出结果相对于所述量子计算层的参数的第二梯度。
7.如权利要求4所述的方法,其特征在于,所述将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层之后,所述方法还包括:
以所述损失函数、所述机器学习模型的参数、以及基于该参数计算得到所述损失函数过程中的每一子步骤的输出结果为计算节点,并以该损失函数、该参数、该子步骤的输出结果之间的关系作为边,构建有向的计算图;
所述基于所述损失函数的值计算该损失函数相对于所述机器学习模型的参数的梯度,包括:
基于所述损失函数的值和所述计算图计算该损失函数相对于所述机器学习模型的参数的梯度。
8.如权利要求7所述的方法,其特征在于,所述基于所述损失函数的值和所述计算图计算该损失函数相对于所述机器学习模型的参数的梯度,包括:
确定所述计算图中所述损失函数对应计算节点至所述机器学习模型的参数对应计算节点的路径;
基于所述损失函数的值计算该路径上非叶子节点的每一计算节点相对于该计算节点的前驱节点的中间梯度;
将计算得到的所有所述中间梯度相乘得到所述损失函数相对于所述参数的梯度。
9.一种基于机器学习框架的模型训练装置,其特征在于,应用于包括机器学习框架的电子设备,所述机器学习框架包括数据结构模块、量子模块和经典模块,所述装置包括:
创建模块,用于调用所述数据结构模块获取输入的训练数据,创建包括所述训练数据的张量数据,并调用所述量子模块和/或所述经典模块创建机器学习模型;
输入训练模块,用于将所述张量数据输入所述机器学习模型,并调用所述经典模块创建所述机器学习模型的训练层;
参数更新模块,用于将所述机器学习模型的输出结果输入所述训练层,并基于所述训练层的输出结果对所述机器学习模型的参数进行更新,以得到训练后的所述机器学习模型。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111680611.1A CN116432691A (zh) | 2021-12-30 | 2021-12-30 | 基于机器学习框架的模型训练方法及相关设备 |
PCT/CN2022/143597 WO2023125857A1 (zh) | 2021-12-30 | 2022-12-29 | 基于机器学习框架系统的模型训练方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111680611.1A CN116432691A (zh) | 2021-12-30 | 2021-12-30 | 基于机器学习框架的模型训练方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116432691A true CN116432691A (zh) | 2023-07-14 |
Family
ID=87087755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111680611.1A Pending CN116432691A (zh) | 2021-12-30 | 2021-12-30 | 基于机器学习框架的模型训练方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116432691A (zh) |
-
2021
- 2021-12-30 CN CN202111680611.1A patent/CN116432691A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020151129A1 (zh) | 量子机器学习框架构建方法、装置、量子计算机及计算机存储介质 | |
CN113850389B (zh) | 一种量子线路的构建方法及装置 | |
CN114358317B (zh) | 基于机器学习框架的数据分类方法及相关设备 | |
CN114511094B (zh) | 一种量子算法的优化方法、装置、存储介质与电子装置 | |
WO2022206842A1 (zh) | 量子线路编译方法、装置、编译框架及量子操作系统 | |
WO2023125857A1 (zh) | 基于机器学习框架系统的模型训练方法及相关设备 | |
CN114372539B (zh) | 基于机器学习框架的分类方法及相关设备 | |
CN114819163B (zh) | 量子生成对抗网络的训练方法、装置、介质及电子装置 | |
CN113128015A (zh) | 预估单振幅模拟量子计算所需资源的方法和系统 | |
CN115809707B (zh) | 量子比较运算方法、装置、电子装置及基础算术组件 | |
CN115879562B (zh) | 一种量子程序初始映射的确定方法、装置及量子计算机 | |
CN116432691A (zh) | 基于机器学习框架的模型训练方法及相关设备 | |
CN117709415A (zh) | 一种量子神经网络模型的优化方法及装置 | |
CN115775029B (zh) | 量子线路转化方法、装置、介质及电子装置 | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
CN115775028B (zh) | 量子线路优化方法、装置、介质及电子装置 | |
CN116523059A (zh) | 数据处理方法、机器学习框架及相关设备 | |
CN114372583B (zh) | 基于机器学习框架的量子程序优化方法及相关设备 | |
CN116542337A (zh) | 数据处理方法、机器学习框架及相关设备 | |
WO2024066808A1 (zh) | 量子线路生成方法、装置、存储介质及电子装置 | |
CN114970872B (zh) | 量子线路的编译方法、装置、介质及电子装置 | |
CN116415667A (zh) | 数据处理方法、机器学习框架及相关设备 | |
CN114912619B (zh) | 一种量子计算任务调度方法、装置及量子计算机操作系统 | |
CN115775030B (zh) | 基于模式匹配的量子程序重写方法、装置及电子装置 | |
CN115271079B (zh) | 量子线路的替换方法、装置、介质及量子计算机操作系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |