一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于PyTorch的轻量快速的量子电路模拟实现系统

2022-05-27 00:56:10 来源:中国专利 TAG:

基于pytorch的轻量快速的量子电路模拟实现系统
技术领域
1.本发明涉及的是一种量子计算领域的技术,具体是一种基于pytorch的轻量快速的量子电路模拟实现系统。


背景技术:

2.经典的计算机日益难以提供足够的运算速度,而量子计算的诞生为不少计算机相关的问题带来新的解决思路。现有使用python实现的量子电路计算模拟框架主要支持量子电路的定义和模块化运算。在量子电路定义完成后,可以直接调用其中的函数,得到量子电路对应的酉矩阵形式,极大地方便量子自编码器和对数编码的实现。但是,由于每次对参数更新之后,都需要重新计算酉矩阵,这让量子电路的运算速度大大减缓。
3.现有基于cirq开发的量子电路计算模拟框架tensorflow quantum可以直接将cirq定义的量子电路,转换为可以在tensorflow中使用的特殊张量。但该框架不能较好地支持量子电路计算模块化的操作,对于部分特殊的量子电路与量子编码(例如量子自编码器与对数编码),很难使用其实现计算模块。


技术实现要素:

4.本发明针对现有量子电路模拟框架存在的诸如不灵活和计算缓慢等问题,提出一种基于pytorch的轻量快速的量子电路模拟实现系统,利用量子门电路的特性,将量子电路模拟中的矩阵乘法计算过程模块化,降低计算的时间复杂度;同时根据用户的计算设备自动选择合适的计算后端,大幅提升计算速度,能够更加高效、灵活地应对复杂的量子电路模拟实现场景。
5.本发明是通过以下技术方案实现的:
6.本发明涉及一种基于pytorch的轻量快速的量子电路模拟实现系统,包括:量子电路设计模块、量子电路转换模块和量子电路计算模块,其中:量子电路设计模块根据用户输入的量子电路描述,构建对应的量子电路对象;量子电路转换模块根据量子电路对象,转换并编译得到对应的量子电路pytorch对象;量子电路计算模块根据量子电路pytorch对象与用户输入的量子态,进行量子电路模拟计算,得到用于构成完整的量子电路模型的测量结果。
7.所述的量子电路描述,包含量子电路中的所有量子门种类、顺序及名称信息。
8.所述的量子电路设计模块内置不同量子门种类对应的添加门电路成员函数,根据用户调添加对应的量子门信息并构建量子电路对象,该量子电路对象通过列表类型的成员变量的方式,存储所述的用户输入的量子电路描述中包含的量子门种类、顺序及名称信息。
9.所述的量子电路pytorch对象包括量子电路对象中包含的量子门对应的参数信息。
10.所述的转换是指:根据量子电路对象内部以列表形式存储的所有量子门信息,逐一转换为量子门对应的参数矩阵,并按顺序存储于量子电路pytorch对象的顺序表中,该顺
序表包括含优化参数矩阵与无优化参数矩阵,其中:含优化参数矩阵对应包含参数的量子门(如u-gate),无优化参数矩阵对应不包含参数的量子门(如h-gate)。
11.所述的编译是指:按照顺序遍历量子电路pytorch对象的顺序表,对相邻的两个无优化参数矩阵进行合并,以降低连续的无优化参数矩阵造成的计算时间开销。
12.所述的量子电路模拟计算是指:对于量子电路pytorch对象的顺序表中存储的第一个参数矩阵,将其与用户输入的量子态进行矩阵乘法操作,作为该参数矩阵对应的运算结果;对于量子电路pytorch对象的顺序表中存储的其余的参数矩阵,将其与顺序表中上一参数矩阵对应的运算结果进行矩阵乘法操作,作为该参数矩阵对应的运算结果;顺序表中最后一个参数矩阵对应的运算结果即量子电路的计算结果。
13.所述的矩阵乘法操作是指:根据用户运行所述的量子电路模拟实现系统的程序时使用的计算设备,自动选择密集矩阵或稀疏矩阵后端程序,对输入矩阵使用特定的pytorch矩阵乘法接口进行矩阵乘法运算。当用户使用cpu设备时,量子电路计算模块选择稀疏矩阵计算后端程序,将顺序表中存储所有的参数矩阵转换为稀疏参数矩阵,并使用pytorch稀疏矩阵乘法接口进行矩阵乘法运算;当用户使用gpu设备或其它拥有高性能并行计算能力的设备时,量子电路计算模块选择密集矩阵计算后端程序,直接使用pytorch密集矩阵乘法接口进行矩阵乘法运算。
14.所述的量子电路模拟计算进一步包括共轭转置变换操作,即:通过设置额外的共轭转置标志,决定是否对输入的量子电路pytorch对象对应的量子电路在进行共轭转置操作后计算。在执行共轭转置操作时,将量子电路pytorch对象内部的顺序表中的所有参数矩阵分别进行矩阵共轭转置计算,并将该顺序表进行前后翻转,存储于量子电路pytorch对象中。
15.所述的构成完整的量子电路模型是指:量子电路计算模块中涉及的用户输入量子态、参数矩阵、参数矩阵对应的运算结果均以pytorch张量的形式存储于计算机内存中,通过传递pytorch张量的方式,将多个量子电路计算模块串联,或者将量子电路计算模块与其它能够接收或输出pytorch张量的自定义模块串联,构建完整的量子电路模型,该模型可接收不同类型的模型输入,并计算不同类型的模型输出。该模型可通过pytorch优化器实现量子电路pytorch模块内部含优化参数矩阵的优化。
16.本发明涉及一种基于上述系统的量子电路模拟方法,根据用户输入的量子电路描述,转换并输出量子电路pytorch对象,并由量子电路计算模块接收用户输入的量子态与量子电路pytorch对象,得到量子电路计算结果,该方法具体包括:
17.步骤1、用户使用量子电路设计模块定义量子电路中的量子门,生成量子电路对象。
18.步骤2、使用量子电路转换模块将上述量子电路对象转换为量子电路pytorch对象。该模块将会对量子电路对象进行转换和编译操作。
19.步骤3、用户使用生成的量子电路pytorch对象,与用户自定义的其它模块结合,构建完整的量子电路模型或混合量子电路模型。
20.步骤4、使用量子电路计算模块,接收量子电路pytorch对象与用户输入的量子态,量子电路计算模块根据计算设备自动选择后端程序,输出计算结果。在得到计算结果后,用户可以使用自定义的优化方案(如pytorch优化器)对量子电路pytorch对象中存储的含优
化参数矩阵进行优化。技术效果
21.本发明在量子电路转换模块中,使用编译的方式对后续的量子电路计算模块的运行过程进行加速;在量子电路计算模块中,根据用户使用的设备类型选择使用稀疏矩阵/密集矩阵后端程序计算,优化运行效率;在量子电路计算模块中,使用顺序化运行的方式将量子电路pytorch对象中顺序表存储的参数矩阵分别与用户输入的量子态或顺序表中上一参数矩阵对应的运算结果进行矩阵乘法运算,而非先将量子电路pytorch对象中顺序表存储的参数矩阵按顺序进行矩阵连乘操作构建出该量子电路pytorch对象对应的量子电路的酉矩阵,再与用户输入量子态进行矩阵乘法,该操作将单一量子门电路模拟计算的复杂度从o(23n)降低为o(22n),加速了计算过程;量子电路转换模块将量子电路模块转换并编译为量子电路pytorch对象,且量子电路计算模块的输入与输出矩阵均以pytorch张量性质存储与计算机内存中,方便用户使用pytorch与其它自定义模块结合构建量子电路训练模型,增加量子电路模拟计算的灵活性。
附图说明
22.图1为本发明流程图;
23.图2为实施例量子电路结构示意图;
24.图3为实施例中用户定义的量子电路模型在优化过程中的损失与精度曲线示意图;
25.图4为实施例中用户定义的量子电路模型的优化速度与在paddle quantum中同一量子电路对应模型的运行速度对比图。
具体实施方式
26.如图1所示,为本实施例涉及一种基于所述的量子电路模拟实现系统实现的用于图像分类任务的量子电路模型,包括:所述的量子电路设计模块、量子电路转换模块、量子电路计算模块与用户定义的输入图像和类别标签,其中:量子电路设计模块根据由用户定义的量子电路描述,得到量子电路对象;量子电路转换模块将量子电路对象进行编译和转换处理,得到量子电路pytorch模块,量子电路计算模块根据该量子电路pytorch模块与用户输入的量子态,进行计算处理,得到量子电路的测量结果;结果与由用户定义的pytorch优化器结合,用于实现图像分类任务。本实施例所述的用户输入的量子电路是一个用于肺炎图像分类任务的基于振幅量子编码的量子分类器线路,使用所述的量子电路设计模块、量子电路转换模块、量子电路计算模块、用户自定义的输入输出处理模块和pytorch优化器进行实现与优化。
27.本实施例处理的用户输入的图像的大小为28
×
28像素,数据集中包括4708张训练图像与624张测试图像,每张图片包含的标签代表该图像属于正/负样本。每张图片的像素被排列为一个一维向量作为输入,以二分类结果(0或1)作为输出。
28.在用户自定义的输入处理模块中,上述的图像向量以振幅方式编码为量子态,输入量子电路计算模块中计算。
29.用户在量子电路设计模块中输入的量子电路由10个量子比特构成。用户使用量子
电路设计模块定义的量子电路如图2所示。该电路由3个相同的图像处理部分组成,在每个图像处理部分中,rz、ry和rz门将会分别作用于量子电路中的每个量子比特,相邻的两个量子比特将会分别通过cnot门建立纠缠。
30.在上述的用户定义的量子电路的最后一层中,对第0个量子比特进行测量操作。测量得到的结果为量子电路的输出。在本实施例中,该输出对应量子图像分类器对于该图像的分类预测结果(0或1)。
31.在用户自定义的输出处理模块中,使用量子图像分类器的测量结果与图像标签之间的二分类交叉熵作为优化目标,对上述量子电路预测结果的损失进行计算。
32.用户将所述的量子电路以量子电路描述方式输入量子电路设计模块,得到量子电路对象。使用量子电路转换模块将其转换与编译为对应的量子电路pytorch对象后,使用量子电路计算模块与所述的用户自定义的输入输出模块串联,完成量子电路模型的构建。使用pytorch提供的adamw优化器对量子电路pytorch对象中的含优化参数矩阵进行优化。图3可视化给出所述的量子电路模型运行时的损失函数与训练分类准确率随优化次数的变化情况。
33.经过具体实际实验,在4核intel xeon gold 6133处理器上,使用0.01的学习率、0.001的权重衰减率的adamw优化器,对所述的训练集中每一张图片优化100轮次上述量子电路模型,能够得到的图像分类精度达到85%。平均每秒钟能够对5.69张图像进行训练,对172.91张图像进行评估。
34.与同类型量子电路计算模拟框架paddle quantum相比,本系统能够在本实施例所述图像分类任务的训练速度上取得20倍的运行速度提升,在推断速度上取得275倍的运行速度提升。具体的速度对比数据如图4所示。
35.上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献