量子卷积神经网络Quantum Convolutional Neural Network(QCNN)。
复现论文:"An Application of Quantum Machine Learning on Quantum Correlated Systems: Quantum Convolutional Neural Network as a Classifier for Many-Body Wavefunctions from the Quantum Variational Eigensolver"
-
TFI_chain是TFQ提供的一个广泛用于模型测试的数据集,称为一维横向场Ising(TFIM)模型量子数据集。此数据集包含边界条件为closed且N = [4, 8, 12, 16]的四组数据,每组数据包含81个数据点。参考文档
-
数据集大小:392 MB
-
数据格式:NPY文件及TXT文件
- 注:数据在
dataset.py
中处理。
- 注:数据在
-
硬件(CPU)
-
框架
-
如需查看详情,请参见如下资源:
-
第三方库
pip install numpy
pip install sklearn
-
下载TFI_chain数据集。
-
执行训练程序。数据集准备完成后,按照如下步骤开始训练:
# 训练 python train.py
-
执行评估程序。训练结束后,按照如下步骤启动评估:
# 评估 python eval.py
qcnn
├── README.md # 模型说明文档
├── requirements.txt # 依赖说明文件
├── eval.py # 精度验证脚本
├── src # 模型定义源码目录
│ ├── QCNNet.py # 模型结构定义
│ ├── ansatz_qcnn.py # 量子拟设定义
│ ├── loss.py # 损失函数定义
│ └── dataset.py # 数据集处理定义
└── train.py # 训练脚本
- 下载数据集并置于
qcnn
目录下。
-
运行
train.py
开始训练。将会对N = 4, 8, 12情况数据集进行训练。 -
训练过程中每训练5步将会打印一次损失值。
- 训练checkpoint将被保存在
model_N{N}.ckpt
中。
- 运行
eval.py
进行评估。将会对N = 4, 8, 12情况数据集进行评估。
参数 | QCNN(N = 4) | QCNN(N = 8) | QCNN(N = 12) |
---|---|---|---|
模型版本 | V1 | V1 | V1 |
资源 | Ubuntu 18.04.5 LTS | Ubuntu 18.04.5 LTS | Ubuntu 18.04.5 LTS |
上传日期 | 2022-06-28 | 2022-06-28 | 2022-06-28 |
MindSpore版本 | 1.6.0 | 1.6.0 | 1.6.0 |
MindQuantum版本 | 0.5.0 | 0.5.0 | 0.5.0 |
数据集 | TFI_chain | TFI_chain | TFI_chain |
训练参数 | epoch=5,batch_size=60 | epoch=4,batch_size=30 | epoch=1,batch_size=30 |
优化器 | Adam | Adam | Adam |
损失函数 | SoftMarginLoss | SoftMarginLoss | SoftMarginLoss |
参数(M) | 63 | 147 | 231 |
脚本 | link |
参数 | QCNN(N = 4) | QCNN(N = 8) | QCNN(N = 12) |
---|---|---|---|
模型版本 | V1 | V1 | V1 |
资源 | Ubuntu 18.04.5 LTS | Ubuntu 18.04.5 LTS | Ubuntu 18.04.5 LTS |
上传日期 | 2022-06-28 | 2022-06-28 | 2022-06-28 |
MindSpore版本 | 1.6.0 | 1.6.0 | 1.6.0 |
MindQuantum版本 | 0.5.0 | 0.5.0 | 0.5.0 |
数据集 | TFI_chain | TFI_chain | TFI_chain |
批次大小 | 81 | 81 | 81 |
输出 | Acc | Acc | Acc |
精确度 | 0.9876543209876543 | 0.9876543209876543 | 0.9876543209876543 |
推理模型 | 287B(.ckpt文件) | 624B(.ckpt文件) | 960B(.ckpt文件) |
使用train.py中的随机种子进行权重初始化。
在train.py中随机分割测试集和训练集。
请浏览官方主页。