1.8K Star 3.1K Fork 4.3K

GVPMindSpore/mindquantum

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

MindQuantum

PyPI - Python Version PyPI Downloads API Tutorial Issues Release LICENSE PRs Welcome

View English

MindQuantum介绍

MindQuantum是基于昇思MindSpore开源深度学习平台开发的新一代通用量子计算框架,聚焦于NISQ阶段的算法实现与落地。结合HiQ高性能量子计算模拟器和昇思MindSpore并行自动微分能力,MindQuantum有着极简的开发模式和极致的性能体验,能够高效处理量子机器学习、量子化学模拟和量子组合优化等问题,为广大科研人员、老师和学生提供快速设计和验证量子算法的高效平台,让量子计算触手可及。

MindQuantum Architecture

初体验

搭建参数化量子线路

通过如下示例可便捷搭建参数化量子线路

from mindquantum import *
import numpy as np

encoder = Circuit().h(0).rx({'a0': 2}, 0).ry('a1', 1)
print(encoder)
print(encoder.get_qs(pr={'a0': np.pi / 2, 'a1': np.pi / 2}, ket=True))

你将得到

      ┏━━━┓ ┏━━━━━━━━━━┓
q0: ──┨ H ┠─┨ RX(2*a0) ┠───
      ┗━━━┛ ┗━━━━━━━━━━┛
      ┏━━━━━━━━┓
q1: ──┨ RY(a1) ┠───────────
      ┗━━━━━━━━┛

-1/2j¦00⟩
-1/2j¦01⟩
-1/2j¦10⟩
-1/2j¦11⟩

在jupyter notebook中,也可通过线路的svg()接口来以svg格式绘制量子线路图(更有darklight模式可选)

circuit = (qft(range(3)) + BarrierGate(True)).measure_all()
circuit.svg()  # circuit.svg('light')
Circuit SVG

训练量子神经网络

ansatz = CPN(encoder.hermitian(), {'a0': 'b0', 'a1': 'b1'})
sim = Simulator('mqvector', 2)
ham = Hamiltonian(-QubitOperator('Z0 Z1'))
grad_ops = sim.get_expectation_with_grad(
    ham,
    encoder.as_encoder() + ansatz.as_ansatz(),
)

import mindspore as ms

ms.set_context(mode=ms.PYNATIVE_MODE, device_target='CPU')
net = MQLayer(grad_ops)
encoder_data = ms.Tensor(np.array([[np.pi / 2, np.pi / 2]]))
opti = ms.nn.Adam(net.trainable_params(), learning_rate=0.1)
train_net = ms.nn.TrainOneStepCell(net, opti)
for i in range(100):
    train_net(encoder_data)
print(dict(zip(ansatz.params_name, net.trainable_params()[0].asnumpy())))

训练得到参数为

{'b1': 1.5720831, 'b0': 0.006396801}

案例教程

  1. 初级使用教程

  2. 中级使用教程

  3. 高级使用教程

案例库

  1. 通用量子算法

  2. 近期量子算法

API

对于上述示例所涉及API和其他更多用法,请查看MindQuantum API文档文档链接

安装教程

确认系统环境信息

  • 硬件平台支持avx2指令集。
  • 参考MindSpore安装指南,完成MindSpore的安装,要求至少1.4.0版本。
  • 其余依赖请参见setup.py

pip安装

安装MindSpore

请根据MindSpore官网安装指南,安装1.4.0及以上版本的MindSpore。

安装MindQuantum

pip install mindquantum

源码安装

  1. 从代码仓下载源码

    cd ~
    git clone https://gitee.com/mindspore/mindquantum.git
    
  2. 编译MindQuantum

    Linux系统下请确保安装好CMake >= 3.18.3,然后运行如下命令:

    cd ~/mindquantum
    bash build.sh --gitee
    

    这里 --gitee 让脚本从gitee代码托管平台下载第三方依赖。如果需要编译GPU版本,请先安装好 CUDA 11.x,和对应的显卡驱动,然后执行如下编译指令:

    cd ~/mindquantum
    bash build.sh --gitee --gpu
    

    Windows系统下请确保安装好MinGW-W64和CMake >= 3.18.3,然后运行如下命令:

    cd ~/mindquantum
    ./build.bat /Gitee
    

    Mac系统下请确保安装好openmp和CMake >= 3.18.3,然后运行如下命令:

    cd ~/mindquantum
    bash build.sh --gitee
    
  3. 安装编译好的whl包

    进入output目录,通过pip命令安装编译好的mindquantum的whl包。

验证是否成功安装

执行如下命令,如果没有报错No module named 'mindquantum',则说明安装成功。

python -c 'import mindquantum'

Docker安装

通过Docker也可以在Mac系统或者Windows系统中使用Mindquantum。具体参考Docker安装指南.

注意事项FAQ

运行代码前请设置量子模拟器运行时并行内核数,例如设置并行内核数为4,可运行如下代码:

export OMP_NUM_THREADS=4

对于大型服务器,请根据模型规模合理设置并行内核数以达到最优效果。

更多注意事项请查看FAQ页面

构建二进制whl包

如果你想构建用于分发的二进制whl包,请参考二进制whl包构建指南

快速入门

关于如何快速搭建参数化量子线路和量子神经网络,并进行训练,请点击查看MindQuantum使用教程

文档

有关安装指南、教程和API的更多详细信息,请参阅用户文档

社区

治理

查看MindSpore如何进行开放治理

贡献

欢迎参与贡献。更多详情,请参阅我们的贡献者Wiki

引用MindQuantum

欢迎查阅MindQuantum白皮书。当您用MindQuantum进行科学研究时,请引用:

@misc{xu2024mindspore,
      title={MindSpore Quantum: A User-Friendly, High-Performance, and AI-Compatible Quantum Computing Framework},
      author={Xusheng Xu and Jiangyu Cui and Zidong Cui and Runhong He and Qingyu Li and Xiaowei Li and Yanling Lin and Jiale Liu and Wuxin Liu and Jiale Lu and others},
      year={2024},
      eprint={2406.17248},
      archivePrefix={arXiv},
      primaryClass={quant-ph},
      url={https://arxiv.org/abs/2406.17248},
}

许可证

Apache License 2.0

空文件

简介

MindQuantum is a general software library supporting the development of applications for quantum computation. 展开 收起
README
Apache-2.0
取消

发行版 (13)

全部
6个月前

MindSpore 开源评估指数

productivity 生产力
niche_creation 创新力
robustness 稳健性
collaboration 协作
contributor 贡献者
software 软件

近期动态

3小时前评论了 PR !2730 feat(build): Enable Position Independent Executables (PIE)
3小时前评论了 PR !2730 feat(build): Enable Position Independent Executables (PIE)
3小时前评论了 PR !2730 feat(build): Enable Position Independent Executables (PIE)
3小时前评论了 PR !2730 feat(build): Enable Position Independent Executables (PIE)
7小时前评论了 PR !2730 feat(build): Enable Position Independent Executables (PIE)
加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/mindspore/mindquantum.git
git@gitee.com:mindspore/mindquantum.git
mindspore
mindquantum
mindquantum
master

搜索帮助