CN116542337A - 数据处理方法、机器学习框架及相关设备 - Google Patents
数据处理方法、机器学习框架及相关设备 Download PDFInfo
- Publication number
- CN116542337A CN116542337A CN202210083466.7A CN202210083466A CN116542337A CN 116542337 A CN116542337 A CN 116542337A CN 202210083466 A CN202210083466 A CN 202210083466A CN 116542337 A CN116542337 A CN 116542337A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- program
- quantum
- classical
- training
- 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 166
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000012549 training Methods 0.000 claims abstract description 192
- 238000000034 method Methods 0.000 claims abstract description 75
- 230000001419 dependent effect Effects 0.000 claims description 32
- 238000004364 calculation method Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 12
- 238000011549 displacement method Methods 0.000 claims description 11
- 238000011161 development Methods 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 51
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000009795 derivation Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 239000002096 quantum dot Substances 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000004069 differentiation Effects 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
- 238000012937 correction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种数据处理方法、机器学习框架及相关设备,所述方法应用于包括机器学习框架的电子设备,所述机器学习框架包括量子模块和经典模块,所述方法包括:调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。通过该方法可以提高对机器学习模型训练的开发效率。
Description
技术领域
本发明属于量子计算技术领域,特别是涉及一种数据处理方法、机器学习框架及相关设备。
背景技术
机器学习模型由于其优异的性能而被广泛应用于人工智能研究,通过利用标注好的训练数据对机器学习模型进行训练,可以得到符合预期的机器学习模型,进而将其用于语音识别、图像识别等具体应用工作。机器学习模型无须人为设立其用于具体应用工作的标准,通过训练机器学习模型可以自己建立相应的工作标准,对于不同应用工作具有较好的适应性。随着量子计算的发展,包含量子程序的机器学习模型也越来越多。
相关技术中,为了对包含量子机器学习程序和经典机器学习程序的机器学习模型进行训练,需要分别针对量子机器学习程序和经典机器学习程序设计训练程序,开发工作量大,开发效率低。
发明内容
本发明的目的是提供一种数据处理方法、机器学习框架及相关设备,旨在针对包含量子机器学习程序和经典机器学习程序的机器学习模型,提高该机器学习模型的训练开发效率。
为了实现上述目的,本发明实施例的第一方面,提供一种数据处理方法,应用于包括机器学习框架的电子设备,所述机器学习框架包括量子模块和经典模块,所述方法包括:
调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;
调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;
调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。
可选地,所述方法还包括:
调用所述经典模块创建所述机器学习模型的训练层,所述训练层用于通过所述第一训练接口调用所述第一预设训练程序,并通过所述第二训练接口调用所述第二预设训练程序。
可选地,所述机器学习框架还包括数据结构模块,所述方法还包括:
调用所述数据结构模块获取输入数据并创建包括所述输入数据的张量数据;
将所述张量数据输入所述机器学习模型,得到输出结果;
将所述输出结果输入所述训练层,以通过所述第一训练接口调用所述第一预设训练程序,根据所述第一预设训练程序训练所述量子机器学习程序,并通过所述第二训练接口调用所述第二预设训练程序,根据所述第二预设训练程序训练所述经典机器学习程序,得到训练后的机器学习模型。
可选地,所述第一预设训练程序包括用于计算所述量子机器学习程序的输出相对于所述量子机器学习程序的第一因变量的梯度的第一梯度计算程序,所述第一因变量为所述量子机器学习程序的输入或参数。
可选地,所述第一梯度计算程序用于根据从所述第一训练接口传入的梯度计算方法参数,选择有限差分法或参数位移法计算所述梯度。
可选地,在所述根据所述第一训练接口传入的梯度计算方法参数,选择参数位移法计算所述梯度时,所述第一梯度计算程序包括:
参数减子程序,用于将所述量子机器学习程序的所述第一因变量减去第一偏置量,并将目标数据输入所述量子机器学习程序,得到第一结果;
参数加子程序,用于将所述量子机器学习程序的所述第一因变量加上第二偏置量,并将目标数据输入所述量子机器学习程序,得到第二结果;
计算子程序,用于根据所述第一结果和所述第二结果计算所述梯度;
其中,所述目标数据为输入所述量子机器学习程序的数据。
可选地,所述第二预设训练程序包括用于计算所述经典机器学习程序的输出相对于所述经典机器学习程序的第二因变量的梯度的第二梯度计算程序,所述第二因变量为所述经典机器学习程序的输入或参数。
本发明实施例的第二方面,提供一种数据处理装置,应用于包括机器学习框架的电子设备,所述机器学习框架包括量子模块和经典模块,所述装置包括:
量子计算层创建模块,用于调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;
经典计算层创建模块,用于调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;
机器学习模型创建模块,用于调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。
可选地,所述装置还包括:
训练层创建模块,用于调用所述经典模块创建所述机器学习模型的训练层,所述训练层用于通过所述第一训练接口调用所述第一预设训练程序,并通过所述第二训练接口调用所述第二预设训练程序。
可选地,所述机器学习框架还包括数据结构模块,所述装置还包括:
张量数据创建模块,用于调用所述数据结构模块获取输入数据并创建包括所述输入数据的张量数据;
输入模块,用于将所述张量数据输入所述机器学习模型,得到输出结果;
训练模块,用于将所述输出结果输入所述训练层,以通过所述第一训练接口调用所述第一预设训练程序,根据所述第一预设训练程序训练所述量子机器学习程序,并通过所述第二训练接口调用所述第二预设训练程序,根据所述第二预设训练程序训练所述经典机器学习程序,得到训练后的机器学习模型。
可选地,所述第一预设训练程序包括用于计算所述量子机器学习程序的输出相对于所述量子机器学习程序的第一因变量的梯度的第一梯度计算程序,所述第一因变量为所述量子机器学习程序的输入或参数。
可选地,所述第一梯度计算程序用于根据从所述第一训练接口传入的梯度计算方法参数,选择有限差分法或参数位移法计算所述梯度。
可选地,在所述根据所述第一训练接口传入的梯度计算方法参数,选择参数位移法计算所述梯度时,所述第一梯度计算程序包括:
参数减子程序,用于将所述量子机器学习程序的所述第一因变量减去第一偏置量,并将目标数据输入所述量子机器学习程序,得到第一结果;
参数加子程序,用于将所述量子机器学习程序的所述第一因变量加上第二偏置量,并将目标数据输入所述量子机器学习程序,得到第二结果;
计算子程序,用于根据所述第一结果和所述第二结果计算所述梯度;
其中,所述目标数据为输入所述量子机器学习程序的数据。
可选地,所述第二预设训练程序包括用于计算所述经典机器学习程序的输出相对于所述经典机器学习程序的第二因变量的梯度的第二梯度计算程序,所述第二因变量为所述经典机器学习程序的输入或参数。
本发明实施例的第三方面,提供一种机器学习框架,包括:
量子模块,被配置为创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;
经典模块,被配置为创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;
所述经典模块还被配置为创建包括所述量子计算层和所述经典计算层的机器学习模型。
本发明实施例的第四方面,提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述第一方面中任一项所述方法的步骤。
本发明实施例的第五方面,提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述第一方面中任一项所述方法的步骤。
基于上述技术方案,对于量子机器学习程序,可以创建包括该量子机器学习程序的量子计算层,并且创建好的该量子计算层可以直接包含有用于训练该量子机器学习程序的第一预设训练程序,以及用于调用该第一预设训练程序的第一训练接口,并同理对于经典机器学习程序,可以创建包括该经典机器学习程序、用于训练该经典机器学习程序的第二预设训练程序、用于调用该第二预设训练程序的第二训练接口,进而对于创建好的包括该量子计算层和经典计算层的机器学习模型,在训练时,可以直接通过第一训练接口和第二训练接口分别调用第一预设训练程序和第二预设训练程序,以实现对于机器学习模型的训练,可以减少针对量子机器学习程序和经典机器学习程序的训练程序的创建工作,更节省了为训练量子机器学习程序和训练经典机器学习程序所需的配合工作,提高了对包含量子计算层和经典计算层的机器学习模型的训练的开发效率。
附图说明
图1是根据一示例性实施例示出的一种数据处理方法的计算机终端的硬件结构框图。
图2是根据一示例性实施例示出的一种数据处理方法的流程图。
图3是根据一示例性实施例示出的一种机器学习框架的框图。
图4是根据一示例性实施例示出的一种数据处理方法的另一流程图。
图5是根据一示例性实施例示出的一种数据处理方法的另一流程图。
图6是根据一示例性实施例示出的一种机器学习框架的另一框图。
图7是根据一示例性实施例示出的一种第一梯度计算程序的框图。
图8是根据一示例性实施例示出的一种数据处理装置的框图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明实施例首先提供了一种数据处理方法,该方法可以应用于电子设备,如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图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的电子设备,所述机器学习框架包括量子模块31和经典模块32,所述方法包括:
S21,调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序。
S22,调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序。
S23,调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。
具体来讲,机器学习框架30集成了众多用于创建和训练机器学习模型的函数集,通过其定义的接口可以方便的调用这些函数实现对机器学习模型的相关操作。如图3所示,所述机器学习框架30可以包括:
量子模块31,被配置为创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;
经典模块32,被配置为创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;
所述经典模块32还被配置为创建包括所述量子计算层和所述经典计算层的机器学习模型。
具体来讲,量子机器学习程序是用于实现量子机器学习任务或其子任务的程序,例如可以是实现量子神经网络的程序,也可以是实现量子神经网络中的量子全连接层或量子池化层、量子卷积层等的程序。量子机器学习程序可以通过调用量子模块31创建,可以通过量子模块31创建各种作用于量子比特的量子逻辑门构成量子机器学习程序。量子机器学习程序可以包含各种参数,例如可以是含参量子逻辑门的参数。
第一预设训练程序是预先创建好的程序,可以用于完成训练量子机器学习程序的所有或部分步骤,例如可以包括用于计算量子机器学习程序的输出相对于量子机器学习程序的输入或参数的梯度的程序。第一训练接口用于调用第一预设训练程序,第一训练接口可以包括一个函数名,以及一个或多个参数用于传入第一预设训练程序,通过输入第一训练接口的函数名和相关参数,可以实现对于第一预设训练接口的调用,例如第一训练接口的函数名可以为_grad_x(),其参数可以包括量子机器学习程序的参数数量、量子比特数量、经典比特数量等,可以在函数名的括号内输入参数。通过输入第一训练接口的函数名,可以根据第一训练接口的函数名在量子计算层对应的执行程序中寻找对应的第一预设训练程序,当找到时,将参数传入第一预设训练程序,并直接执行第一预设训练程序即可。
量子计算层是封装有量子机器学习程序和其它程序如上述第一预设训练程序的程序模块,其通过按照一定标准对量子机器学习程序和其它程序进行封装,使得在创建和训练包含量子机器学习程序的机器学习模型时,便于实现相关功能。
具体来讲,经典机器学习程序是用于实现经典机器学习任务或其子任务的程序,例如可以是实现经典神经网络的程序,也可以是实现经典神经网络中的全连接层或池化层、卷积层等的程序。经典机器学习程序可以通过调用机器学习框架的相关接口和程序进行创建,例如可以通过各种数学运算或逻辑运算的接口和程序等创建经典机器学习程序。经典机器学习程序可以包含各种参数,例如可以是经典的全连接层的权重矩阵。
第二预设训练程序是预先创建好的程序,可以用于完成训练经典机器学习程序的所有或部分步骤,例如可以包括用于计算经典机器学习程序的输出相对于经典机器学习程序的输入或参数的梯度的程序。第二训练接口用于调用第二预设训练程序,第二训练接口可以包括一个函数名,以及一个或多个参数用于传入第二预设训练程序,通过输入第二训练接口的函数名和相关参数,可以实现对于第二预设训练接口的调用,例如第二训练接口的函数名也可以为_grad_x(),其参数可以包括经典机器学习程序的参数数量等,可以在函数名的括号内输入参数。通过输入第二训练接口的函数名,可以根据第二训练接口的函数名在经典计算层对应的执行程序中寻找对应的第二预设训练程序,当找到时,将参数传入第二预设训练程序,并直接执行第二预设训练程序即可。需要说明的是,第一训练接口和第二训练接口的函数名相同时,为在调用时进行区分,可以结合经典计算层或量子计算层的名称进行调用,例如量子计算层名称为Quantumlayer,则调用第一训练接口可以输入Quantumlayer._grad_x()。
经典计算层是封装有经典机器学习程序和其它程序如上述第二预设训练程序的程序模块,其通过按照一定标准对经典机器学习程序和其它程序进行封装,使得在创建和训练包含经典机器学习程序的机器学习模型时,便于实现相关功能。
此外,经典模块32还可以用于创建机器学习模型,其可以通过对量子计算层和经典计算层进行封装得到包括量子计算层和经典计算层的混合量子和经典的机器学习模型。
在步骤S21中,可以通过输入创建量子计算层的接口,来创建量子计算层,例如其接口可以为QuantumLayer(qprog_with_meansure,para_num,machine_type_or_cloud_token,num_of_qubits,num_of_cbits,diff_method,delta),其括号内各项为参数。qprog_with_meansure为量子机器学习程序,para_num为参数数量,machine_type_or_cloud_token为量子机器学习程序所运行的电子设备类型,例如可以为真实的量子计算机或虚拟机,num_of_qubits,num_of_cbits分别为量子机器学习程序运行所需的量子比特数量和经典比特数量,diff_method为训练量子机器学习程序时的梯度计算方法,例如可以为有限差分法,delta为计算梯度采用前述有限差分法时的步长。将量子机器学习程序作为上述接口的参数,并输入上述接口,可以在机器学习框架的量子模块对应的文件库中查找上述接口对应的程序,例如在查找到接口名称一样的程序时,确定查找到该接口对应的程序,进而将作为参数的量子机器学习程序传入该程序并执行该程序,创建包括量子机器学习程序的量子计算层。在其他可能的实施方式中,也可以通过其它的接口创建包含特定的量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,例如特定的量子机器学习程序可以是预先建立好的量子全连接层等。
当然,在执行创建量子计算层的接口对应的程序创建量子计算层时,还会自动在量子计算层中封装第一训练接口和与该第一训练接口对应的第一预设训练程序,进而便于在训练机器学习模型时直接通过第一训练接口调用第一预设训练程序对量子机器学习程序进行训练。
在步骤S22,可以通过输入创建经典计算层的接口,来创建经典计算层,可以通过调用经典模块32创建经典机器学习程序,并将经典机器学习程序作为前述接口的参数,输入该接口,可以在机器学习框架30的经典模块32对应的文件库中查找上述接口对应的程序,例如在查找到接口名称一样的程序时,确定查找到该接口对应的程序,进而将作为参数的经典机器学习程序传入该程序并执行该程序,创建包括经典机器学习程序的经典计算层。在其他可能的实施方式中,也可以通过其它的接口创建包含特定的经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,例如特定的经典机器学习程序可以是预先建立好的全连接层、卷积层、池化层等。
当然,在执行创建经典计算层的接口对应的程序创建经典计算层时,还会自动在经典计算层中封装第二训练接口和与该第二训练接口对应的第二预设训练程序,进而便于在训练机器学习模型时直接通过第二训练接口调用第二预设训练程序对经典机器学习程序进行训练。
创建好量子计算层和经典计算层后,进入执行步骤S23,可以通过调用经典模块32对量子计算层和经典计算层进行封装,创建包括量子计算层和经典计算层的机器学习模型。例如可以通过如下代码创建机器学习模型:
该机器学习模型包括了一个量子计算层和一个经典计算层,其中,量子计算层通过接口QuantumLayer(Qcircuit,3,"cpu",4,1)创建,Qcircuit为量子机器学习程序,3为参数的数量,"cpu"表示量子机器学习程序运行于虚拟机,4表示量子机器学习程序所需的量子比特的数量,1表示量子机器学习程序所需的经典比特的数量,创建该量子计算层时,自动在量子计算层中封装有第一训练接口和第一预设训练程序。通过接口Linear(7,2)创建了一个包含经典的全连接层、第二训练接口和第二预设训练程序的经典计算层,7表示该全连接层的输入特征数据的数量为7个,2表示该全连接层的输出特征数据的数量为2个。
此外,该机器学习模型还包括了正向运行的程序,通过接口forward(self,x)调用后续的程序实现,便于正向运行该机器学习模型。需要说明的是,步骤S21和步骤S22相互的执行先后顺序并不限定,只要其在步骤S23之前执行即可。
基于上述技术方案,对于量子机器学习程序,可以创建包括该量子机器学习程序的量子计算层,并且创建好的该量子计算层可以直接包含有用于训练该量子机器学习程序的第一预设训练程序,以及用于调用该第一预设训练程序的第一训练接口,并同理对于经典机器学习程序,可以创建包括该经典机器学习程序、用于训练该经典机器学习程序的第二预设训练程序、用于调用该第二预设训练程序的第二训练接口,进而对于创建好的包括该量子计算层和经典计算层的机器学习模型,在训练时,可以直接通过第一训练接口和第二训练接口分别调用第一预设训练程序和第二预设训练程序,以实现对于机器学习模型的训练,可以减少针对量子机器学习程序和经典机器学习程序的训练程序的创建工作,更节省了为训练量子机器学习程序和训练经典机器学习程序所需的配合工作,提高了对包含量子计算层和经典计算层的机器学习模型的训练的开发效率。
图4是根据一示例性实施例示出的一种数据处理方法的流程图。参见图4,本实施例提供一种数据处理方法,该方法可以应用于包括如图3所示的机器学习框架30的电子设备,所述机器学习框架30包括量子模块31和经典模块32,所述方法包括:
S41,调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序。
S42,调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序。
S43,调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。
S44,调用所述经典模块创建所述机器学习模型的训练层,所述训练层用于通过所述第一训练接口调用所述第一预设训练程序,并通过所述第二训练接口调用所述第二预设训练程序。
其中,步骤S41至步骤S43可以参见前述步骤S21至步骤S23。
在步骤S44中,为训练机器学习模型,可以创建训练层,训练层中可以预设有用于调用第一训练接口和第二训练接口的接口,进而通过该接口可以调用第一训练接口和第二训练接口,并通过所述第一训练接口调用所述第一预设训练程序,并通过所述第二训练接口调用所述第二预设训练程序。而无需在训练层中创建相关的训练程序,减少对于包含量子计算层和经典计算层的机器学习模型的训练的开发量。
图5是根据一示例性实施例示出的一种数据处理方法的流程图。参见图5,本实施例提供一种数据处理方法,该方法可以应用于包括如图6所示的机器学习框架60的电子设备,所述机器学习框架60包括数据结构模块61、量子模块62和经典模块63,所述方法包括:
S51,调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序。
S52,调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序。
S53,调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。
S54,调用所述经典模块创建所述机器学习模型的训练层,所述训练层用于通过所述第一训练接口调用所述第一预设训练程序,并通过所述第二训练接口调用所述第二预设训练程序。
S55,调用所述数据结构模块获取输入数据并创建包括所述输入数据的张量数据。
S56,将所述张量数据输入所述机器学习模型,得到输出结果。
S57,将所述输出结果输入所述训练层,以通过所述第一训练接口调用所述第一预设训练程序,根据所述第一预设训练程序训练所述量子机器学习程序,并通过所述第二训练接口调用所述第二预设训练程序,根据所述第二预设训练程序训练所述经典机器学习程序,得到训练后的机器学习模型。
其中,步骤S51至步骤S53可以参见前述步骤S21至步骤S23,步骤S54可以参见步骤S44,经典模块63的功能可以参见前述经典模块32,量子模块62的功能可以参见前述量子模块31。
具体来讲,数据结构模块61定义了张量数据的数据结构,通过调用数据结构模块61,可以将输入数据转化为张量数据,以用于输入机器学习模型进行正向计算。当然,在其它可能的实施方式中,数据结构模块61还可以被配置为对张量数据执行运算,例如数据结构模块61还可以定义张量数据之间数学运算和逻辑运算等,进而可以调用数据结构模块61基于张量数据之间的运算关系创建机器学习模型的经典机器学习程序,例如经典神经网络的全连接层通过函数y=wx+b定义了输入数据x和输出数据y之间的关系,其中w和b为参数,通过将输入数据x、参数w、参数b转化为张量数据,并调用数据结构模块61对这些张量数据执行与该函数对应的运算,可以构建全连接层。
在一种可能的实施方式中,数据结构模块61可以用于将输入数据按照预设的数据结构排列以创建用于输入所述机器学习模型的张量数据,以及创建以所述预设的数据结构排列且数值确定的用于输入所述机器学习模型的张量数据。进而在步骤S55中,对于输入的输入数据,可以将输入数据按照预设的数据结构排列以得到张量数据,输入数据可以作为张量数据的一部分存储。例如获取的输入数据为1,2,3,可以将输入的该输入数据转化为向量结构[1,2,3]作为张量数据的一部分。需要说明的是,输入数据可以是用于训练机器学习模型的数据,也可以是待预测分类的数据。需要说明的是,步骤S55并不限制在步骤S54之后,只要在步骤S56前执行即可,步骤S56也并不限制在步骤S54之后,只要步骤S53和步骤S55执行后,即可执行步骤S56。
需要说明的是,张量数据除包括按照预设的数据结构排列的数据值即上述输入数据外,还可以包括计算得到该数据值的张量数据的信息以及该张量数据相对于包含所述数据值的张量数据的梯度函数,其中计算得到该数据值的张量数据的信息可以包括该张量数据的变量、数据值存储地址以及数据值等,只要其表明该张量数据对应节点是计算得到该数据值的张量数据对应节点的前驱节点即可。以上述函数关系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的梯度值。
在步骤S56中,将所述张量数据输入所述机器学习模型,以正向运行所述机器学习模型,得到机器学习模型对张量数据的输出结果。然后执行步骤S57,将输出结果输入训练层,通过第一训练接口和第二训练接口调用第一预设训练程序和第二预设训练程序,执行这两个预设训练程序直接对量子机器学习程序和经典机器学习程序进行训练,或者结合其它训练程序对量子机器学习程序和经典机器学习程序进行训练,得到符合预期的机器学习模型作为训练后的机器学习模型。
可选地,所述第一预设训练程序包括用于计算所述量子机器学习程序的输出相对于所述量子机器学习程序的第一因变量的梯度的第一梯度计算程序,所述第一因变量为所述量子机器学习程序的输入或参数。
具体来讲,第一预设训练程序可以包括用于计算梯度的第一梯度计算程序,例如量子机器学习程序为y=f(x;θ),其中y为输出,x为输入,θ为参数,f()表示量子机器学习程序的映射关系,则该梯度可以是量子机器学习程序的输出y相对于量子机器学习的输入x的梯度,也可以是量子机器机器学习程序的输出y相对于量子机器学习的参数θ的梯度。当然,在一种可能的实施方式中,第一预设训练程序可以同时包括用于计算量子机器学习程序的输出相对于量子机器学习程序的输入的梯度的第一输入梯度计算程序,和用于计算量子机器学习程序的输出相对于量子机器学习程序的参数的梯度的第一参数梯度计算程序。进而可以根据需要选择使用第一输入梯度计算程序或第一参数梯度计算程序。例如采用自动微分基于链式求导法则计算梯度时,若待求梯度的量子机器学习程序处于链式求导步骤的中间,则可以选用第一输入梯度计算程序计算量子机器学习程序的输出相对于其输入的梯度,若待求梯度的量子机器学习程序处于链式求导步骤的最后,则可以选用第一参数梯度计算程序计算量子机器学习程序的输出相对于其参数的梯度。
可选地,所述第二预设训练程序包括用于计算所述经典机器学习程序的输出相对于所述经典机器学习程序的第二因变量的梯度的第二梯度计算程序,所述第二因变量为所述经典机器学习程序的输入或参数。
具体来讲,第二预设训练程序可以包括用于计算梯度的第二梯度计算程序,例如经典机器学习程序对应映射关系为z=g(p;i),其中z为输出,p为输入,i为参数,g()表示经典机器学习程序的映射关系,则该梯度可以是经典机器学习程序的输出z相对于经典机器学习的输入p的梯度,也可以是经典机器机器学习程序的输出y相对于经典机器学习的参数i的梯度。当然,在一种可能的实施方式中,第二预设训练程序可以同时包括用于计算经典机器学习程序的输出相对于经典机器学习程序的输入的梯度的第二输入梯度计算程序,和用于计算经典机器学习程序的输出相对于经典机器学习程序的参数的梯度的第二参数梯度计算程序。进而可以根据需要选择使用第二输入梯度计算程序或第二参数梯度计算程序。例如采用自动微分基于链式求导法则计算梯度时,若待求梯度的经典机器学习程序处于链式求导步骤的中间,则可以选用第二输入梯度计算程序计算经典机器学习程序的输出相对于其输入的梯度,若待求梯度的经典机器学习程序处于链式求导步骤的最后,则可以选用第二参数梯度计算程序计算经典机器学习程序的输出相对于其参数的梯度。
可选地,输出结果输入训练层后,可以先基于输出结果计算机器学习模型的损失函数,在确定所述损失函数的值不满足预设条件时,例如损失函数的值大于阈值时,表示机器学习模型的输出结果与符合预期的标签数据的差别较大,因此需要对机器学习模型进行优化。进而可以基于损失函数的值更新机器学习模型的参数,也即更新量子计算层和经典计算层的参数,得到训练后的机器学习模型。
具体来讲,为对机器学习模型进行优化,可以基于上述第一预设训练程序计算损失函数相对于量子机器学习程序的参数的梯度,基于上述第二预设训练程序计算损失函数相对于经典机器学习程序的参数的梯度。例如机器学习模型包括一量子计算层和一经典计算层,量子计算层的量子机器学习程序为上述y=f(x;θ),经典计算层的经典机器学习程序为上述z=g(p;i),且y用于作为p输入经典机器学习程序z=g(p;i),z为机器学习模型的输出结果。则为了求损失函数相对于参数i的梯度,可以根据z计算损失函数,再计算损失函数相对于经典机器学习程序的输出z的第一梯度,以及基于第二预设训练程序计算输出z相对于参数i的第二梯度,将第一梯度与第二梯度相乘得到损失函数相对于输出参数i的梯度。为求损失函数相对于参数θ的梯度,可以计算损失函数相对于输出z的第一梯度,基于第二预设训练程序计算输出z相对于作为因变量p的输出y的第三梯度,以及基于第一预设训练程序计算输出y相对于参数θ的第四梯度,再将第一梯度、第三梯度和第四梯度相乘得到损失函数相对于参数θ的梯度。损失函数可以通过计算机器学习模型的输出结果与标签数据的差的平方即平方损失函数得到,也可以计算该输出结果与标签数据的二元交叉熵(Binary Cross Entropy)作为损失函数。
计算出损失函数相对于量子机器学习程序和经典机器学习程序的参数的梯度后,可以将该梯度带入梯度下降算法以对参数进行更新,例如可以采用随机梯度下降算法(Stochastic Gradient Descent,SGD),自适应梯度算法(Adaptive gradient algorithm,Adagrad)、自适应矩估计(Adaptive Moment Estimation,Adam)等算法中的任意一种,当然还可以采用其它的算法更新机器学习模型的参数。计算更新所述参数后的所述机器学习模型的所述损失函数的值,在确定损失函数的值满足预设条件时例如损失函数的值小于阈值时,将更新参数后的机器学习模型作为训练后的机器学习模型。若更新参数后,机器学习模型的损失函数的值不满足预设条件,则可以返回执行前述计算损失函数等用于更新机器学习模型参数的步骤,直至更新参数后得到的损失函数的值满足预设条件。
可选地,所述第一梯度计算程序用于根据从所述第一训练接口传入的梯度计算方法参数,选择有限差分法或参数位移法计算所述梯度。
具体来讲,可以将梯度计算方法参数从第一训练接口传入,进而根据输入的梯度计算方法参数确定计算梯度的方法,例如梯度计算方法参数为finite_diff时,选择有限差分法(finite difference method)计算前述梯度,梯度计算方法参数为parameter_shift时,选择参数位移法计算前述梯度。
可选地,如图7所示,在所述根据所述第一训练接口传入的梯度计算方法参数,选择参数位移法计算所述梯度时,所述第一梯度计算程序70可以包括:
参数减子程序71,用于将所述量子机器学习程序的所述第一因变量减去第一偏置量,并将目标数据输入所述量子机器学习程序,得到第一结果;
参数加子程序72,用于将所述量子机器学习程序的所述第一因变量加上第二偏置量,并将目标数据输入所述量子机器学习程序,得到第二结果;
计算子程序73,用于根据所述第一结果和所述第二结果计算所述梯度;
其中,所述目标数据为输入所述量子机器学习程序的数据。
具体来讲,选择参数位移法时,对应的第一梯度计算程序70包括参数减子程序71、参数加子程序72和计算子程序73,将张量数据输入机器学习模型前向计算过程中,用于输入量子机器学习程序的数据为目标数据。以第一因变量为量子机器学习程序的参数为例,在执行第一梯度计算程序70时,执行参数减子程序71将量子机器学习程序的参数减去第一偏置量,例如减去然后将目标数据输入量子机器学习程序,得到量子机器学习程序输出的第一结果,同理执行参数加子程序72将量子机器学习程序的参数加上第二偏置量例如/>得到量子机器学习程序输出的第二结果,最后执行计算子程序73,可以计算第一结果和第二结果之差的二分之一作为量子机器学习程序的输出相对于参数的梯度,整个过程可以利用如下公式计算:
其中,为量子机器学习程序的输出相对于参数的梯度,f(x;θi)为量子机器学习程序,x为目标数据,θi为参数。当然,在其它可能的实施方式中,第一偏置量和第二偏置量可以不同,且可以采用其它数值,视具体情况而定。并且基于第一结果和第二结果计算梯度也可以采用其它方法,例如在上述计算公式的基础上加上修正量,本发明对此不做具体限制。对于参数减子程序71和参数加子程序72的执行顺序,本发明也不做具体限制,可以根据具体情况而定。采用参数位移法可以在量子机器学习程序运行于真实的量子计算机时计算相应的梯度,相对于部分不能应用于真实量子计算机的梯度计算方法,拓宽其使用范围。
图8是根据一示例性实施例示出的一种数据处理装置的框图,该装置80可以应用于包括如图3所示的机器学习框架30的电子设备,所述机器学习框架包括量子模块31和经典模块32,所述装置80包括:
量子计算层创建模块81,用于调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;
经典计算层创建模块82,用于调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;
机器学习模型创建模块83,用于调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。
可选地,所述装置80还包括:
训练层创建模块,用于调用所述经典模块创建所述机器学习模型的训练层,所述训练层用于通过所述第一训练接口调用所述第一预设训练程序,并通过所述第二训练接口调用所述第二预设训练程序。
可选地,所述机器学习框架还包括数据结构模块,所述装置80还包括:
张量数据创建模块,用于调用所述数据结构模块获取输入数据并创建包括所述输入数据的张量数据;
输入模块,用于将所述张量数据输入所述机器学习模型,得到输出结果;
训练模块,用于将所述输出结果输入所述训练层,以通过所述第一训练接口调用所述第一预设训练程序,根据所述第一预设训练程序训练所述量子机器学习程序,并通过所述第二训练接口调用所述第二预设训练程序,根据所述第二预设训练程序训练所述经典机器学习程序,得到训练后的机器学习模型。
可选地,所述第一预设训练程序包括用于计算所述量子机器学习程序的输出相对于所述量子机器学习程序的第一因变量的梯度的第一梯度计算程序,所述第一因变量为所述量子机器学习程序的输入或参数。
可选地,所述第一梯度计算程序用于根据从所述第一训练接口传入的梯度计算方法参数,选择有限差分法或参数位移法计算所述梯度。
可选地,如图7所示,在所述根据所述第一训练接口传入的梯度计算方法参数,选择参数位移法计算所述梯度时,所述第一梯度计算程序70包括:
参数减子程序71,用于将所述量子机器学习程序的所述第一因变量减去第一偏置量,并将目标数据输入所述量子机器学习程序,得到第一结果;
参数加子程序72,用于将所述量子机器学习程序的所述第一因变量加上第二偏置量,并将目标数据输入所述量子机器学习程序,得到第二结果;
计算子程序73,用于根据所述第一结果和所述第二结果计算所述梯度;
其中,所述目标数据为输入所述量子机器学习程序的数据。
可选地,所述第二预设训练程序包括用于计算所述经典机器学习程序的输出相对于所述经典机器学习程序的第二因变量的梯度的第二梯度计算程序,所述第二因变量为所述经典机器学习程序的输入或参数。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明的再一实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述数据处理方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的再一实施例还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述数据处理方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;
调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;
调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (11)
1.一种数据处理方法,其特征在于,应用于包括机器学习框架的电子设备,所述机器学习框架包括量子模块和经典模块,所述方法包括:
调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;
调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;
调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
调用所述经典模块创建所述机器学习模型的训练层,所述训练层用于通过所述第一训练接口调用所述第一预设训练程序,并通过所述第二训练接口调用所述第二预设训练程序。
3.如权利要求2所述的方法,其特征在于,所述机器学习框架还包括数据结构模块,所述方法还包括:
调用所述数据结构模块获取输入数据并创建包括所述输入数据的张量数据;
将所述张量数据输入所述机器学习模型,得到输出结果;
将所述输出结果输入所述训练层,以通过所述第一训练接口调用所述第一预设训练程序,根据所述第一预设训练程序训练所述量子机器学习程序,并通过所述第二训练接口调用所述第二预设训练程序,根据所述第二预设训练程序训练所述经典机器学习程序,得到训练后的机器学习模型。
4.如权利要求1所述的方法,其特征在于,所述第一预设训练程序包括用于计算所述量子机器学习程序的输出相对于所述量子机器学习程序的第一因变量的梯度的第一梯度计算程序,所述第一因变量为所述量子机器学习程序的输入或参数。
5.如权利要求4所述的方法,其特征在于,所述第一梯度计算程序用于根据从所述第一训练接口传入的梯度计算方法参数,选择有限差分法或参数位移法计算所述梯度。
6.如权利要求5所述的方法,其特征在于,在所述根据所述第一训练接口传入的梯度计算方法参数,选择参数位移法计算所述梯度时,所述第一梯度计算程序包括:
参数减子程序,用于将所述量子机器学习程序的所述第一因变量减去第一偏置量,并将目标数据输入所述量子机器学习程序,得到第一结果;
参数加子程序,用于将所述量子机器学习程序的所述第一因变量加上第二偏置量,并将目标数据输入所述量子机器学习程序,得到第二结果;
计算子程序,用于根据所述第一结果和所述第二结果计算所述梯度;
其中,所述目标数据为输入所述量子机器学习程序的数据。
7.如权利要求1所述的方法,其特征在于,所述第二预设训练程序包括用于计算所述经典机器学习程序的输出相对于所述经典机器学习程序的第二因变量的梯度的第二梯度计算程序,所述第二因变量为所述经典机器学习程序的输入或参数。
8.一种数据处理装置,其特征在于,应用于包括机器学习框架的电子设备,所述机器学习框架包括量子模块和经典模块,所述装置包括:
量子计算层创建模块,用于调用所述量子模块创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;
经典计算层创建模块,用于调用所述经典模块创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;
机器学习模型创建模块,用于调用所述经典模块创建包括所述量子计算层和所述经典计算层的机器学习模型。
9.一种机器学习框架,其特征在于,包括:
量子模块,被配置为创建包括量子机器学习程序、第一预设训练程序以及第一训练接口的量子计算层,所述第一训练接口用于调用所述第一预设训练程序训练所述量子机器学习程序;
经典模块,被配置为创建包括经典机器学习程序、第二预设训练程序以及第二训练接口的经典计算层,所述第二训练接口用于调用所述第二预设训练程序训练所述经典机器学习程序;
所述经典模块还被配置为创建包括所述量子计算层和所述经典计算层的机器学习模型。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210083466.7A CN116542337A (zh) | 2022-01-24 | 2022-01-24 | 数据处理方法、机器学习框架及相关设备 |
PCT/CN2022/143597 WO2023125857A1 (zh) | 2021-12-30 | 2022-12-29 | 基于机器学习框架系统的模型训练方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210083466.7A CN116542337A (zh) | 2022-01-24 | 2022-01-24 | 数据处理方法、机器学习框架及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116542337A true CN116542337A (zh) | 2023-08-04 |
Family
ID=87442234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210083466.7A Pending CN116542337A (zh) | 2021-12-30 | 2022-01-24 | 数据处理方法、机器学习框架及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116542337A (zh) |
-
2022
- 2022-01-24 CN CN202210083466.7A patent/CN116542337A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114819163B (zh) | 量子生成对抗网络的训练方法、装置、介质及电子装置 | |
CN114358317B (zh) | 基于机器学习框架的数据分类方法及相关设备 | |
CN117709415A (zh) | 一种量子神经网络模型的优化方法及装置 | |
CN114764620B (zh) | 一种量子卷积操作器 | |
CN115775029B (zh) | 量子线路转化方法、装置、介质及电子装置 | |
CN114372539B (zh) | 基于机器学习框架的分类方法及相关设备 | |
CN115809707B (zh) | 量子比较运算方法、装置、电子装置及基础算术组件 | |
CN116431807A (zh) | 一种文本分类方法、装置、存储介质及电子装置 | |
CN116403657A (zh) | 一种药物反应预测方法、装置、存储介质及电子装置 | |
CN116011681A (zh) | 一种气象数据预测方法、装置、存储介质及电子装置 | |
CN116542337A (zh) | 数据处理方法、机器学习框架及相关设备 | |
CN114881238A (zh) | 量子鉴别器的构造方法、装置、介质及电子装置 | |
CN114912619B (zh) | 一种量子计算任务调度方法、装置及量子计算机操作系统 | |
CN114372584A (zh) | 基于机器学习框架的迁移学习方法及相关装置 | |
CN114372583B (zh) | 基于机器学习框架的量子程序优化方法及相关设备 | |
CN116415667B (zh) | 数据处理方法、机器学习框架及相关设备 | |
CN115114569A (zh) | 一种基于量子线路的非线性偏微分方程求解方法及装置 | |
CN116432691A (zh) | 基于机器学习框架的模型训练方法及相关设备 | |
CN115775028B (zh) | 量子线路优化方法、装置、介质及电子装置 | |
CN116523059A (zh) | 数据处理方法、机器学习框架及相关设备 | |
CN116432764B (zh) | 机器学习框架 | |
CN114970872B (zh) | 量子线路的编译方法、装置、介质及电子装置 | |
CN115730670B (zh) | 模式文件的生成方法、装置、介质及电子装置 | |
CN115775030B (zh) | 基于模式匹配的量子程序重写方法、装置及电子装置 | |
CN114692879B (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 |