CN116432763A - 机器学习模型运行方法、机器学习框架及相关设备 - Google Patents
机器学习模型运行方法、机器学习框架及相关设备 Download PDFInfo
- Publication number
- CN116432763A CN116432763A CN202111680570.6A CN202111680570A CN116432763A CN 116432763 A CN116432763 A CN 116432763A CN 202111680570 A CN202111680570 A CN 202111680570A CN 116432763 A CN116432763 A CN 116432763A
- Authority
- CN
- China
- Prior art keywords
- quantum
- computing
- classical
- layer
- machine learning
- 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 152
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000006870 function Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 abstract description 15
- 239000011800 void material Substances 0.000 description 10
- 230000004913 activation Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004806 packaging method and process Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 239000002096 quantum dot Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000005610 quantum mechanics Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000287436 Turdus merula Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000001276 controlling effect 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
- 230000001105 regulatory effect Effects 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
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种机器学习模型运行方法、机器学习框架及相关设备,应用于包括机器学习框架的电子装置,该机器学习框架包括经典模块和量子模块,本发明通过指定经典计算层的第一运算设备和量子计算层的第二运算设备;将第一运算设备作为参数传入经典计算层接口,以及将第二运算设备作为参数传入量子计算层接口;调用经典模块通过该经典计算层接口创建经典计算层,以及调用量子模块通过该量子计算层接口创建量子计算层;调用经典模块构建包括经典计算层和量子计算层的机器学习模型,以及调用第一运算设备和第二运算设备运行机器学习模型,实现对不同运算设备的无缝切换和统一调用,提高运算设备使用的统一性。
Description
技术领域
本发明属于量子计算技术领域,特别是涉及一种机器学习模型运行方法、机器学习框架及相关设备。
背景技术
经典的机器学习,尤其是深度学习,彻底改变了人工智能的许多子领域,并取得了重大成功。近年来,随着信息时代的到来,深度学习得到了迅速的发展。电子数据量的快速增长导致了深度学习模型的训练数据的大量增加。与此同时,电子计算机计算能力的迅速发展,特别是以图形处理单元(GPU)为代表的一系列新型电子计算设备的出现,使得深度学习模型的大规模训练成为现实。因此,深度学习已经大大超越了之前的传统算法,并在许多领域得到了广泛的应用。深度学习在数字图像分类、手写字符识别、视频分析等领域的表现已经达到或超过了人类。
随着量子计算的快速发展,以量子力学为基础,将量子计算与经典机器学习相结合的量子机器学习也开始迅速发展。量子机器学习利用量子计算机远超经典计算机的效率,结合大数据时代快速发展的机器学习算法,进一步提高了大数据的处理能力。
目前,经典-量子混合机器学习模型是通过经典机器学习框架构建其经典部分,通过量子机器学习框架构建其量子部分,需要结合经典机器学习框架和量子机器学习框架配合使用,因此该机器学习模型运行时不能实现对运算设备的统一调用。
发明内容
本发明的目的是提供一种机器学习模型运行方法、机器学习框架及相关设备,旨在实现对不同运算设备的无缝切换和统一调用,提高运算设备使用的统一性。
本发明的一个实施例提供了一种机器学习模型运行方法,应用于包括机器学习框架的电子装置,所述机器学习框架包括经典模块和量子模块,所述方法包括:
指定经典计算层的第一运算设备和量子计算层的第二运算设备;
将所述第一运算设备作为参数传入经典计算层接口,以及将所述第二运算设备作为参数传入量子计算层接口;
调用所述经典模块通过所述经典计算层接口创建经典计算层,以及调用所述量子模块通过所述量子计算层接口创建量子计算层;
调用所述经典模块构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备运行所述机器学习模型。
可选的,所述调用所述第一运算设备和所述第二运算设备运行所述机器学习模型,包括:
在确定所述第二运算设备支持的计算格式不包括所述量子计算层的输入数据的格式时,调用所述经典模块通过数据格式转换接口将所述量子计算层的输入数据的格式转换为所述第二运算设备支持的计算格式;
调用所述第二运算设备运行所述量子计算层计算所述输入数据对应的输出数据。
可选的,所述第一运算设备的计算硬件包括以下至少一种:中央处理器CPU、图形处理器GPU、张量处理器TPU、现场可编程逻辑门阵列FPGA;所述第二运算设备的计算硬件包括以下至少一种:CPU、GPU、量子处理器QPU。
可选的,若所述第二运算设备的计算硬件为CPU或GPU,则所述第二运算设备为量子虚拟机;所述调用所述第一运算设备和所述第二运算设备运行机器学习模型之前,所述方法还包括:
基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机。
可选的,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,包括:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的初始化函数,以及通过所述初始化函数创建所述量子虚拟机。
可选的,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,包括:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的量子机器初始化接口,以及通过所述量子机器初始化接口创建所述量子虚拟机。
可选的,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,包括:
基于所述机器学习框架内含的量子计算编程库中的指定计算硬件的量子虚拟机类创建所述量子虚拟机。
本发明的又一实施例提供了一种机器学习模型运行装置,应用于包括机器学习框架的电子装置,所述机器学习框架包括经典模块和量子模块,所述装置包括:
运算设备确定单元,用于指定经典计算层的第一运算设备和量子计算层的第二运算设备;
接口确定单元,用于将所述第一运算设备作为参数传入经典计算层接口,以及将所述第二运算设备作为参数传入量子计算层接口;
计算层创建单元,用于调用所述经典模块通过所述经典计算层接口创建经典计算层,以及调用所述量子模块通过所述量子计算层接口创建量子计算层;
模型运行单元,用于调用所述经典模块构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备所述运行机器学习模型。
可选的,在所述调用所述第一运算设备和所述第二运算设备运行所述机器学习模型方面,所述模型运行单元,具体用于:
在确定所述第二运算设备支持的计算格式不包括所述量子计算层的输入数据的格式时,调用所述经典模块通过数据格式转换接口将所述量子计算层的输入数据的格式转换为所述第二运算设备支持的计算格式;
调用所述第二运算设备运行所述量子计算层计算所述输入数据对应的输出数据。
可选的,所述第一运算设备的计算硬件包括以下至少一种:中央处理器CPU、图形处理器GPU、张量处理器TPU、现场可编程逻辑门阵列FPGA;所述第二运算设备的计算硬件包括以下至少一种:CPU、GPU、量子处理器QPU。
可选的,若所述第二运算设备的计算硬件为CPU或GPU,则所述第二运算设备为量子虚拟机;所述调用所述第一运算设备和所述第二运算设备运行机器学习模型之前,所述运算设备确定单元,还用于:
基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机。
可选的,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,所述运算设备确定单元,具体用于:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的初始化函数,以及通过所述初始化函数创建所述量子虚拟机。
可选的,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,所述运算设备确定单元,具体用于:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的量子机器初始化接口,以及通过所述量子机器初始化接口创建所述量子虚拟机。
可选的,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,所述运算设备确定单元,具体用于:
基于所述机器学习框架内含的量子计算编程库中的指定计算硬件的量子虚拟机类创建所述量子虚拟机。
本发明的又一实施例提供了一种机器学习框架,所述机器学习框架包括:
经典模块,被配置为通过经典计算层接口创建经典计算层,所述经典计算层接口的参数包括所述经典计算层的第一运算设备;
量子模块,被配置为通过量子计算层接口创建量子计算层,所述量子计算层接口的参数包括所述量子计算层的第二运算设备;
所述经典模块,还被配置为构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备运行所述机器学习模型。
本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。
本发明的又一实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中所述的方法。
与现有技术相比,本发明在提供的包括经典模块和量子模块的机器学习框架下构建机器学习模型,该机器学习模型的经典计算层由经典模块通过经典计算层接口创建,量子计算层由量子模块通过量子计算层接口创建,在创建之时即指定经典计算层的第一运算设备作为经典计算层接口的参数和指定量子计算层的第二运算设备作为量子计算层接口的参数,从而实现了在运行时,可以通过第一运算设备运行经典计算层和第二运算设备运行量子计算层,实现了对不同运算设备的无缝切换和统一调用,提高运算设备使用的统一性。
附图说明
图1为本发明实施例提供的一种机器学习模型运行方法的计算机终端的硬件结构框图;
图2为本发明实施例提供的一种机器学习模型运行方法的流程示意图;
图3为本发明实施例提供的一种机器学习模型运行装置的结构示意图;
图4为本发明实施例提供的一种机器学习框架的结构示意图;
图5为本发明实施例提供的另一种机器学习框架的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明实施例首先提供了一种机器学习模型运行方法,该方法可以应用于电子设备,如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图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门)、泡利-Y门(Y门)、泡利-Z门(Z门)、RX门、RY门、RZ门等等;多比特量子逻辑门,如CNOT门、CR门、iSWAP门、Toffoli门等等。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态右矢对应的矩阵进行计算。
参见图2,图2为本发明实施例提供的一种机器学习模型运行方法的流程示意图,应用于包括机器学习框架的电子装置,所述机器学习框架包括经典模块和量子模块,所述方法包括:
步骤201:指定经典计算层的第一运算设备和量子计算层的第二运算设备;
步骤202:将所述第一运算设备作为参数传入经典计算层接口,以及将所述第二运算设备作为参数传入量子计算层接口;
步骤203:调用所述经典模块通过所述经典计算层接口创建经典计算层,以及调用所述量子模块通过所述量子计算层接口创建量子计算层;
步骤204:调用所述经典模块构建包括所述经典计算层和量子计算层的机器学习模型;
步骤205:调用所述第一运算设备和所述第二运算设备运行所述机器学习模型。
其中,量子计算是一种遵循量子力学规律调控量子信息单元进行计算的新型计算模式,借助量子的名为叠加和纠缠的两个现象,能够同时处理信息的多个状态。量子计算层为包含量子线路的程序模块,可以用于实现对应量子线路的量子计算,通过对量子线路按照一定的标准进行封装,使得量子计算层便于在创建和训练机器学习模型时进行使用。对于机器学习模型通过量子计算实现的部分,均可以理解为对应的量子计算层。
其中,经典计算是一种遵循经典物理学规律调控经典信息单元进行计算的传统计算模式,它通过一个二进制系统工作,即信息使用1或0来存储,不会理解0或1之外的任何东西。经典计算层与量子计算层相对应,其可以是对创建好的经典计算程序按照一定标准进行封装,使得经典计算层便于在创建和训练机器学习模型时进行使用。
其中,接口(interface)是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。经典计算层接口即为经典计算层对应的一系列方法的声明,量子计算层接口即为量子计算层对应的一系列方法的声明,下述提及的其他接口也可参照本处解释,不再赘述。
其中,经典计算层包括经典神经网络层和/或激活层,经典神经网络层对应的经典神经网络层接口包括以下至少一者:一维卷积层接口Conv1D()、二维卷积层接口Conv2D、二维转置卷积层接口ConvT2D()、平均池化层接口AvgPool2D()、最大池化层接口MaxPool2D()、嵌入层接口Embedding2D()、一维批量归一化层接口BatchNorm1D()、二维批量归一化层接口BatchNorm2D、全连接层接口Linear()、随机丢失层接口Dropout()。
其中,激活层接口包括以下至少一者:Sigmoid()、Softplus()、Softsign()、Softmax()、HardSigmoid()、Relu()、LeakyRelu()、Elu()、Tanh()。
其中,Sigmoid()对应的激活函数为Softplus()对应的激活函数为Softplus(x)=log(1+ex),Softsign()对应的激活函数为/>Softmax()对应的激活函数为/>Relu()对应的激活函数为Relu(x)=max(0,x),LeakyRelu()对应的激活函数为/>Elu()对应的激活函数为/>Tanh()对应的激活函数为 HardSigmoid()对应的激活函数为
其中,量子计算层包括通用量子计算层接口(例如QuantumLayer()、QuantumLayerV2())、兼容量子计算层接口(例如Compatiblelayer())、含噪量子计算层接口(例如NoiseQuantumLayer())、量子卷积层接口(例如QConv())、量子全连接层接口(例如Qlinear());所述通用量子计算层接口用于提供基于所述机器学习框架内含的量子计算编程库创建的量子程序;所述兼容量子计算层接口用于提供基于非所述机器学习框架内含的量子计算编程库创建的量子程序;所述含噪量子计算层接口用于提供基于所述机器学习框架内含的量子计算编程库创建的考虑噪声影响的量子程序;
其中,每个经典计算层接口或量子计算层接口中均包括参数machine_type_or_cloud_token,可以通过该参数实现第一运算设备或第二运算设备的指定。
其中,第一运算设备为经典计算设备,第二运算设备为量子运算设备。所述第一运算设备的计算硬件包括以下至少一种:中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、张量处理器(tensor processing unit,TPU)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA);所述第二运算设备的计算硬件包括以下至少一种:CPU、GPU、量子处理器(Quantum Processing Unit,QPU)。
具体的,所述机器学习框架还包括数据结构模块,所述调用所述经典模块构建包括所述经典计算层和量子计算层的机器学习模型,包括:
调用所述经典模块构建经典计算层以及调用所述数据结构模块构建所述经典计算层与所述量子计算层之间的前向传播关系;
调用所述经典模块将所述经典计算层、所述量子计算层以及所述经典计算层与所述量子计算层之间的前向传播关系进行封装,得到机器学习模型。
其中,前向传播为将上一计算层的输出作为下一计算层的输入,并计算下一计算层的输出,一直运算到没有下一计算层为止,其中计算层可以为上述的经典计算层也可以为上述的量子计算层。
进一步的,所述经典模块还包括抽象类子模块,所述调用所述经典模块将所述经典计算层、所述量子计算层以及所述经典计算层与所述量子计算层之间的前向传播关系进行封装,得到机器学习模型,包括:
调用所述抽象类子模块基于初始化函数对所述量子计算层和所述经典计算层初始化和封装,得到初始化和封装后的所述量子计算层和所述经典计算层;
调用所述抽象类子模块基于前向传播函数对所述前向传播关系进行封装得到封装后的所述前向传播关系;
调用所述抽象类子模块基于模块类对所述初始化和封装后的所述量子计算层和所述经典计算层,以及封装后的所述前向传播关系进行封装,得到机器学习模型。
其中,初始化函数为_init_(),前向传播函数为forward()。
基于初始化函数对所述量子计算层和所述经典计算层初始化和封装,得到初始化和封装后的所述量子计算层和所述经典计算层,那么可以如下:
基于前向传播函数对所述前向传播关系进行封装得到封装后的所述前向传播关系,那么可以如下:
基于模块类对所述初始化和封装后的所述量子计算层和所述经典计算层,以及封装后的所述前向传播关系进行封装,得到机器学习模型,那么可以如下:
与现有技术相比,本发明在提供的包括经典模块和量子模块的机器学习框架下构建机器学习模型,该机器学习模型的经典计算层由经典模块通过经典计算层接口创建,量子计算层由量子模块通过量子计算层接口创建,在创建之时即指定经典计算层的第一运算设备作为经典计算层接口的参数和指定量子计算层的第二运算设备作为量子计算层接口的参数,从而实现了在运行时,可以通过第一运算设备运行经典计算层和第二运算设备运行量子计算层,实现了对不同运算设备的无缝切换和统一调用,提高运算设备使用的统一性。
在本发明提供的一实施例中,所述调用所述第一运算设备和所述第二运算设备运行所述机器学习模型,包括:
在确定所述第二运算设备支持的计算格式不包括所述量子计算层的输入数据的格式时,调用所述经典模块通过数据格式转换接口将所述量子计算层的输入数据的格式转换为所述第二运算设备支持的计算格式;
调用所述第二运算设备运行所述量子计算层计算所述输入数据对应的输出数据。
其中,所述调用所述第一运算设备和所述第二运算设备运行所述机器学习模型,还包括:
在确定所述第一运算设备支持的计算格式不包括所述经典计算层的输入数据的格式时,调用所述经典模块通过数据格式转换接口将所述经典计算层的输入数据的格式转换为所述第一运算设备支持的计算格式;
调用所述第一运算设备运行所述经典计算层计算所述输入数据对应的输出数据。
具体来说,机器学习模型包括多个计算层,计算层包括经典计算层和量子计算层,每个计算层可以是通过不同的运算设备进行运算的,因此上一计算层的输出数据的计算格式不一定是下一计算层的输入数据支持的计算格式,因此需要进行数据格式的转换。数据格式的转换可以通过数据格式转换接口实现,数据格式转换接口例如可以为:void toCPU(int dev=DEV_CPU)、void to GPU(int dev=DEV_GPU)、void to TPU(int dev=DEV_TPU)、void to FPGA(int dev=DEV_FPGA)、void to QPU(int dev=DEV_QPU)。void toCPU(int dev=DEV_CPU)、void to GPU(int dev=DEV_GPU)、void to TPU(int dev=DEV_TPU)、void to FPGA(int dev=DEV_FPGA)、void to QPU(int dev=DEV_QPU)分别为将数据转换成CPU、GPU、TPU、FPGA、QPU格式。
在本发明提供的一实施例中,若所述第二运算设备的计算硬件为CPU或GPU,则所述第二运算设备为量子虚拟机;所述调用所述第一运算设备和所述第二运算设备运行机器学习模型之前,所述方法还包括:
其中,机器学习框架内含的量子计算编程库例如可以为Qpanda、Qsikit、Cirq、Forest、Q#、qbsolv、Blackbird等,在此不做限定。
基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机。
其中,虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的的完整计算机系统。量子虚拟机就是通过经典计算机模拟量子计算机的完整计算机系统。
在本发明提供的一实施例中,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,包括:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的初始化函数,以及通过所述初始化函数创建所述量子虚拟机。
其中,初始化函数为init(),虚拟机的具体创建方式为init(QMachineType::CPU),该种量子虚拟机创建方式会在代码中生成一个全局的量子虚拟机qvm。
在本发明提供的一实施例中,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,包括:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的量子机器初始化接口,以及通过所述量子机器初始化接口创建所述量子虚拟机。
其中,量子机器初始化接口为initQuantumMachine(),虚拟机的具体创建方式为Autoqvm=initQuantumMachine(QMachineType::CPU),该种虚拟虚拟机创建方式通过量子机器初始化接口得到量子虚拟机指针。
在本发明提供的一实施例中,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,包括:
基于所述机器学习框架内含的量子计算编程库中的指定计算硬件的量子虚拟机类创建所述量子虚拟机。
其中,指定计算硬件的量子虚拟机类例如可以为CPUQVM、GPUQVM或是其他,虚拟机的具体创建方式例如可以为CPUQVM*qvm=new CPUQVM,该种虚拟虚拟机创建方式直接新建一个qvm类。
参见图3,图3为本发明实施例提供的一种机器学习模型运行装置的结构示意图,应用于包括机器学习框架的电子装置,所述机器学习框架包括经典模块和量子模块,所述装置30包括:
运算设备确定单元301,用于指定经典计算层的第一运算设备和量子计算层的第二运算设备;
接口确定单元302,用于将所述第一运算设备作为参数传入经典计算层接口,以及将所述第二运算设备作为参数传入量子计算层接口;
计算层创建单元303,用于调用所述经典模块通过所述经典计算层接口创建经典计算层,以及调用所述量子模块通过所述量子计算层接口创建量子计算层;
模型运行单元304,用于调用所述经典模块构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备所述运行机器学习模型。
可选的,在所述调用所述第一运算设备和所述第二运算设备运行所述机器学习模型方面,所述模型运行单元304,具体用于:
在确定所述第二运算设备支持的计算格式不包括所述量子计算层的输入数据的格式时,调用所述经典模块通过数据格式转换接口将所述量子计算层的输入数据的格式转换为所述第二运算设备支持的计算格式;
调用所述第二运算设备运行所述量子计算层计算所述输入数据对应的输出数据。
可选的,所述第一运算设备的计算硬件包括以下至少一种:中央处理器CPU、图形处理器GPU、张量处理器TPU、现场可编程逻辑门阵列FPGA;所述第二运算设备的计算硬件包括以下至少一种:CPU、GPU、量子处理器QPU。
可选的,若所述第二运算设备的计算硬件为CPU或GPU,则所述第二运算设备为量子虚拟机;所述调用所述第一运算设备和所述第二运算设备运行机器学习模型之前,所述运算设备确定单元301,还用于:
基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机。
可选的,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,所述运算设备确定单元301,具体用于:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的初始化函数,以及通过所述初始化函数创建所述量子虚拟机。
可选的,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,所述运算设备确定单元301,具体用于:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的量子机器初始化接口,以及通过所述量子机器初始化接口创建所述量子虚拟机。
可选的,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,所述运算设备确定单元301,具体用于:
基于所述机器学习框架内含的量子计算编程库中的指定计算硬件的量子虚拟机类创建所述量子虚拟机。
与现有技术相比,本发明在提供的包括经典模块和量子模块的机器学习框架下构建机器学习模型,该机器学习模型的经典计算层由经典模块通过经典计算层接口创建,量子计算层由量子模块通过量子计算层接口创建,在创建之时即指定经典计算层的第一运算设备作为经典计算层接口的参数和指定量子计算层的第二运算设备作为量子计算层接口的参数,从而实现了在运行时,可以通过第一运算设备运行经典计算层和第二运算设备运行量子计算层,实现了对不同运算设备的无缝切换和统一调用,提高运算设备使用的统一性。
参见图4,图4为本发明实施例提供的一种机器学习框架的结构示意图,所述机器学习框架40包括:
经典模块401,被配置为通过经典计算层接口创建经典计算层,所述经典计算层接口的参数包括所述经典计算层的第一运算设备;
量子模块402,被配置为通过量子计算层接口创建量子计算层,所述量子计算层接口的参数包括所述量子计算层的第二运算设备;
所述经典模块401,还被配置为构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备运行所述机器学习模型。
可选的,所述经典模块401,还被配置为在确定所述第二运算设备支持的计算格式不包括所述量子计算层的输入数据的格式时,通过数据格式转换接口将所述量子计算层的输入数据的格式转换为所述第二运算设备支持的计算格式。
可选的,所述第一运算设备的计算硬件包括以下至少一种:中央处理器CPU、图形处理器GPU、张量处理器TPU、现场可编程逻辑门阵列FPGA;所述第二运算设备的计算硬件包括以下至少一种:CPU、GPU、量子处理器QPU。
可选的,所述机器学习框架还包括量子计算编程库403,参见图5,图5为本发明实施例提供的另一种机器学习框架的结构示意图,所述量子计算编程库403,被配置为若所述第二运算设备的计算硬件为CPU或GPU,构造量子虚拟机。
可选的,所述量子计算编程库403,被配置为将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的初始化函数,以及通过所述初始化函数创建所述量子虚拟机。
可选的,所述量子计算编程库403,被配置为将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的量子机器初始化接口,以及通过所述量子机器初始化接口创建所述量子虚拟机。
可选的,所述量子计算编程库403,被配置为基于所述机器学习框架内含的量子计算编程库中的指定计算硬件的量子虚拟机类创建所述量子虚拟机。
本发明实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
指定经典计算层的第一运算设备和量子计算层的第二运算设备;
将所述第一运算设备作为参数传入经典计算层接口,以及将所述第二运算设备作为参数传入量子计算层接口;
调用所述经典模块通过所述经典计算层接口创建经典计算层,以及调用所述量子模块通过所述量子计算层接口创建量子计算层;
调用所述经典模块构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备运行所述机器学习模型。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的再一实施例还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
指定经典计算层的第一运算设备和量子计算层的第二运算设备;
将所述第一运算设备作为参数传入经典计算层接口,以及将所述第二运算设备作为参数传入量子计算层接口;
调用所述经典模块通过所述经典计算层接口创建经典计算层,以及调用所述量子模块通过所述量子计算层接口创建量子计算层;
调用所述经典模块构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备运行所述机器学习模型。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (11)
1.一种机器学习模型运行方法,其特征在于,应用于包括机器学习框架的电子装置,所述机器学习框架包括经典模块和量子模块,所述方法包括:
指定经典计算层的第一运算设备和量子计算层的第二运算设备;
将所述第一运算设备作为参数传入经典计算层接口,以及将所述第二运算设备作为参数传入量子计算层接口;
调用所述经典模块通过所述经典计算层接口创建经典计算层,以及调用所述量子模块通过所述量子计算层接口创建量子计算层;
调用所述经典模块构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备运行所述机器学习模型。
2.如权利要求1所述的方法,其特征在于,所述调用所述第一运算设备和所述第二运算设备运行所述机器学习模型,包括:
在确定所述第二运算设备支持的计算格式不包括所述量子计算层的输入数据的格式时,调用所述经典模块通过数据格式转换接口将所述量子计算层的输入数据的格式转换为所述第二运算设备支持的计算格式;
调用所述第二运算设备运行所述量子计算层计算所述输入数据对应的输出数据。
3.如权利要求1所述的方法,其特征在于,所述第一运算设备的计算硬件包括以下至少一种:中央处理器CPU、图形处理器GPU、张量处理器TPU、现场可编程逻辑门阵列FPGA;所述第二运算设备的计算硬件包括以下至少一种:CPU、GPU、量子处理器QPU。
4.如权利要求3所述的方法,其特征在于,若所述第二运算设备的计算硬件为CPU或GPU,则所述第二运算设备为量子虚拟机;所述调用所述第一运算设备和所述第二运算设备运行机器学习模型之前,所述方法还包括:
基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机。
5.如权利要求4所述的方法,其特征在于,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,包括:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的初始化函数,以及通过所述初始化函数创建所述量子虚拟机。
6.如权利要求4所述的方法,其特征在于,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,包括:
将指定计算硬件的量子机器类型作为参数传入所述机器学习框架内含的量子计算编程库中的量子机器初始化接口,以及通过所述量子机器初始化接口创建所述量子虚拟机。
7.如权利要求4所述的方法,其特征在于,所述基于所述机器学习框架内含的量子计算编程库构造所述量子虚拟机,包括:
基于所述机器学习框架内含的量子计算编程库中的指定计算硬件的量子虚拟机类创建所述量子虚拟机。
8.一种机器学习模型运行装置,其特征在于,应用于包括机器学习框架的电子装置,所述机器学习框架包括经典模块和量子模块,所述装置包括:
运算设备确定单元,用于指定经典计算层的第一运算设备和量子计算层的第二运算设备;
接口确定单元,用于将所述第一运算设备作为参数传入经典计算层接口,以及将所述第二运算设备作为参数传入量子计算层接口;
计算层创建单元,用于调用所述经典模块通过所述经典计算层接口创建经典计算层,以及调用所述量子模块通过所述量子计算层接口创建量子计算层;
模型运行单元,用于调用所述经典模块构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备所述运行机器学习模型。
9.一种机器学习框架,其特征在于,所述机器学习框架包括:
经典模块,被配置为通过经典计算层接口创建经典计算层,所述经典计算层接口的参数包括所述经典计算层的第一运算设备;
量子模块,被配置为通过量子计算层接口创建量子计算层,所述量子计算层接口的参数包括所述量子计算层的第二运算设备;
所述经典模块,还被配置为构建包括所述经典计算层和量子计算层的机器学习模型,以及调用所述第一运算设备和所述第二运算设备运行所述机器学习模型。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111680570.6A CN116432763A (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 |
---|---|---|---|
CN202111680570.6A CN116432763A (zh) | 2021-12-30 | 2021-12-30 | 机器学习模型运行方法、机器学习框架及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116432763A true CN116432763A (zh) | 2023-07-14 |
Family
ID=87080229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111680570.6A Pending CN116432763A (zh) | 2021-12-30 | 2021-12-30 | 机器学习模型运行方法、机器学习框架及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116432763A (zh) |
-
2021
- 2021-12-30 CN CN202111680570.6A patent/CN116432763A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112633508B (zh) | 一种量子线路的生成方法、装置、存储介质及电子装置 | |
CN113850389B (zh) | 一种量子线路的构建方法及装置 | |
CN111753948A (zh) | 模型处理方法及相关设备 | |
CN114358295B (zh) | 基于机器学习框架的二分类方法及相关装置 | |
CN114358319B (zh) | 基于机器学习框架的分类方法及相关装置 | |
CN114819163B (zh) | 量子生成对抗网络的训练方法、装置、介质及电子装置 | |
CN111461335A (zh) | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 | |
CN115293254B (zh) | 基于量子多层感知器的分类方法及相关设备 | |
CN114358318B (zh) | 基于机器学习框架的分类方法及相关装置 | |
CN113222153B (zh) | 一种量子态的模拟方法、装置、存储介质和电子装置 | |
CN113222161B (zh) | 一种自定义量子逻辑门的实现方法、装置 | |
CN114511094A (zh) | 一种量子算法的优化方法、装置、存储介质与电子装置 | |
CN114372539B (zh) | 基于机器学习框架的分类方法及相关设备 | |
CN116432710B (zh) | 机器学习模型构建方法、机器学习框架及相关设备 | |
CN113887730B (zh) | 量子模拟器实现方法、装置、相关设备以及量子模拟方法 | |
CN116432763A (zh) | 机器学习模型运行方法、机器学习框架及相关设备 | |
CN115879562B (zh) | 一种量子程序初始映射的确定方法、装置及量子计算机 | |
CN116432721B (zh) | 数据处理方法、机器学习框架及相关设备 | |
EP4273758A1 (en) | Quantum preprocessing method and apparatus, storage medium, and electronic apparatus | |
CN114881239A (zh) | 量子生成器的构造方法、装置、介质及电子装置 | |
CN114881238A (zh) | 量子鉴别器的构造方法、装置、介质及电子装置 | |
CN114819167B (zh) | 一种稀疏线性系统的稀疏近似逆量子预处理方法及装置 | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
CN116415685A (zh) | 含噪声机器学习模型创建方法、机器学习框架及相关设备 | |
CN116432764B (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 |