MindQuantum — это новое поколение квантовых вычислительных фреймворков, основанных на MindSpore, ориентированных на реализацию алгоритмов NISQ. Он объединяет высокопроизводительный квантовый вычислительный симулятор HiQ с параллельной возможностью автоматического дифференцирования MindSpore. MindQuantum прост в использовании и обладает сверхвысокой производительностью. Он может эффективно решать такие задачи, как квантовое машинное обучение, моделирование квантовой химии и квантовая оптимизация. MindQuantum предоставляет исследователям, преподавателям и студентам эффективную платформу для быстрого проектирования и проверки квантовых алгоритмов, делая квантовые вычисления доступными для всех.
Приведённый ниже пример показывает, как создать параметризованный квантовый контур.
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 мы можем просто вызвать svg()
любого контура для отображения контура в виде SVG-картинки (dark
и light
режимы также поддерживаются).
circuit = (qft(range(3)) + BarrierGate(True)).measure_all()
circuit.svg() # circuit.svg('light')
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())))
The trained parameters are:
```bash
{'b1': 1.5720831, 'b0': 0.006396801}
Basic usage
Variational quantum algorithm
GENERAL QUANTUM ALGORITHM
For more API, please refer to MindQuantum API.
Download Source Code from Gitee
cd ~
git clone https://gitee.com/mindspore/mindquantum.git
Compiling MindQuantum
cd ~/mindquantum
bash build.sh
cd output
pip install mindquantum-*.whl
Please refer to MindSpore installation guide to install MindSpore that at least 1.4.0 version. Установка MindQuantum
pip install mindquantum
Сборка из исходного кода
Клонируйте исходный код.
cd ~
git clone https://gitee.com/mindspore/mindquantum.git
Соберите MindQuantum.
Для Linux-системы убедитесь, что ваша версия cmake >= 3.18.3, а затем запустите код:
```bash
cd ~/mindquantum
bash build.sh --gitee
```
Здесь --gitee
указывает скрипту загрузить сторонние компоненты с gitee. Если вы хотите загрузить с github, вы можете проигнорировать этот флаг. Если вы хотите собрать под GPU, убедитесь, что у вас установлена CUDA 11.x и драйвер для GPU, а затем выполните код:
```bash
cd ~/mindquantum
bash build.sh --gitee --gpu
```
Для Windows-системы убедитесь, что вы установили MinGW-W64 и CMake >= 3.18.3, и затем запустите:
```bash
cd ~/mindquantum
./build.bat /Gitee
```
Для Mac-системы установите openmp и CMake >= 3.18.3 и затем запустите:
```bash
cd ~/mindquantum
bash build.sh --gitee
```
Перейдите в папку output и установите пакет колеса mindquantum с помощью pip.
Установка прошла успешно, если при выполнении следующей команды не появляется сообщение об ошибке типа «No module named 'mindquantum'»:
python -c 'import mindquantum'
Пользователи Mac или Windows могут установить MindQuantum через Docker. Пожалуйста, обратитесь к руководству по установке Docker.
Перед запуском сценариев MindQuantum задайте количество параллельных ядер. Например, если вы хотите задать количество параллельных ядер равным 4, выполните следующую команду:
export OMP_NUM_THREADS=4
На больших серверах количество параллельных ядер следует задавать в соответствии с размером модели для достижения оптимальных результатов.
Если вы хотите создать бинарные колёса для распространения, пожалуйста, ознакомьтесь с нашим руководством по созданию бинарных колёс
Более подробную информацию о том, как построить параметризованную квантовую цепь и квантовую нейронную сеть и как обучить эти модели, см. в Учебнике MindQuantum.
Дополнительные сведения об инструкциях по установке, учебниках и API см. в Пользовательской документации.
Узнайте, как работает управление MindSpore Open Governance (https://gitee.com/mindspore/community/blob/master/governance.md).
Мы приветствуем вклад. Подробнее см. в нашей Вики для участников.
Добро пожаловать на доступ к белой книге 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}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )