diff --git a/modelcenter/DeepCFD/info.yaml b/modelcenter/DeepCFD/info.yaml
index a634944e7c4db54d80cdab2d5a82197423b017de..ca40942e29ec4c62cf8f200543047e0bf47a9dd0 100644
--- a/modelcenter/DeepCFD/info.yaml
+++ b/modelcenter/DeepCFD/info.yaml
@@ -14,4 +14,4 @@ Datasets: "deepcfd-data"
Publisher: "Baidu"
License: "apache.2.0"
IfTraining: 1
-IfOnlineDemo: 1
+IfOnlineDemo: 0
diff --git a/modelcenter/DeepCFD/introduction.ipynb b/modelcenter/DeepCFD/introduction_cn.ipynb
similarity index 100%
rename from modelcenter/DeepCFD/introduction.ipynb
rename to modelcenter/DeepCFD/introduction_cn.ipynb
diff --git a/modelcenter/ERNIE-3.0 Zeus/info.yaml b/modelcenter/ERNIE-3.0 Zeus/info.yaml
index c9c5bfbd53a36f07c8389df0c55495f16a94ea3d..fd021938920e547cade540f0712ca6d7b1c64e9c 100644
--- a/modelcenter/ERNIE-3.0 Zeus/info.yaml
+++ b/modelcenter/ERNIE-3.0 Zeus/info.yaml
@@ -14,4 +14,4 @@ Datasets: ""
Publisher: "Baidu"
License: "apache.2.0"
IfTraining: 0
-IfOnlineDemo: 1
+IfOnlineDemo: 0
diff --git a/modelcenter/ERNIE-3.0 Zeus/introduction_cn.ipynb b/modelcenter/ERNIE-3.0 Zeus/introduction_cn.ipynb
index cd4e2162f77d035dcf2562bfd8d2b6df9ad635af..6a2b4dc6c8f08a87ecc375a2ab4d25d7818616d9 100644
--- a/modelcenter/ERNIE-3.0 Zeus/introduction_cn.ipynb
+++ b/modelcenter/ERNIE-3.0 Zeus/introduction_cn.ipynb
@@ -8,7 +8,7 @@
"source": [
"## 1. ERNIE 3.0 Zeus 模型简介\n",
"\n",
- "ERNIE 3.0 Zeus 是 ERNIE 3.0 系列模型的最新升级。其除了对无标注数据和知识图谱的学习之外,还通过持续学习对百余种不同形式的任务数据学习。实现了任务知识增强,显著提升了模型的零样本/小样本学习能力。\n",
+ "ERNIE 3.0 Zeus 是 ERNIE 3.0 系列模型的最新升级。其除了对无标注数据和知识图谱的学习之外,还通过持续学习对百余种不同形式的任务数据学习。实现了任务知识增强,显著提升了模型的零样本/小样本学习能力。[点击此处进入体验页面](https://wenxin.baidu.com/ernie3)\n",
"\n",
"## 2. 模型原理介绍\n",
"\n",
@@ -20,7 +20,7 @@
" \n",
"#### 温馨提示\n",
"\n",
- "每个账户每日免费请求ERNIE 3.0系列服务的上限为200条输入,免费请求额度共2000条输入。如果您有更多请求需求,请跟我们联系:[体验申请](https://wenxin.baidu.com/wenxin/apply3)\n",
+ "* 每个账户每日免费请求ERNIE 3.0系列服务的上限为200条输入,免费请求额度共2000条输入。如果您有更多请求额度需求和商务合作需求,请跟我们联系:[体验申请](https://wenxin.baidu.com/wenxin/apply3)\n",
"\n",
"\n",
"#### 获取API Key\n",
@@ -34,11 +34,32 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"metadata": {
"collapsed": false
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
+ "Collecting wenxin-api\n",
+ " Downloading https://pypi.tuna.tsinghua.edu.cn/packages/0e/32/fb1e931cc0436205fb53193a4c1f9fd8aae75ba71dbd999fd55b9899428b/wenxin_api-0.1.0-py3-none-any.whl (24 kB)\n",
+ "Requirement already satisfied: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from wenxin-api) (4.64.1)\n",
+ "Requirement already satisfied: requests>=2.20 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from wenxin-api) (2.24.0)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20->wenxin-api) (2019.9.11)\n",
+ "Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20->wenxin-api) (3.0.4)\n",
+ "Requirement already satisfied: idna<3,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20->wenxin-api) (2.8)\n",
+ "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20->wenxin-api) (1.25.6)\n",
+ "Installing collected packages: wenxin-api\n",
+ "Successfully installed wenxin-api-0.1.0\n",
+ "\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.1.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m22.3.1\u001b[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
+ ]
+ }
+ ],
"source": [
"!pip install --upgrade wenxin-api"
]
@@ -107,7 +128,7 @@
"\n",
"## 5. 应用场景\n",
"\n",
- "智能创作、摘要生成、问答、语义检索、情感分析、信息抽取、文本匹配、文本纠错等各类自然语言理解和生成任务\n",
+ "智能创作、摘要生成、问答、语义检索、情感分析、信息抽取、文本匹配、文本纠错等各类自然语言理解和生成任务。\n",
"\n",
"## 6. 使用方案\n",
"\n",
@@ -115,11 +136,11 @@
"\n",
"#### 通过飞桨旸谷社区在线体验\n",
"\n",
- "通过飞桨旸谷社区在线体验 ERNIE 3.0 Zeus 的文本理解和文本创作能力,您可以通过 ERNIE 3.0 Zeus Prompt 接口体验预置 prompt 技能,预置技能包括作文创作、文案创作、摘要生成、问题生成、古诗创作、对联续写、小说续写、自由问答、情感分析、信息抽取、同义改写、文本匹配、文本纠错、完型填空、Text2SQL 等十余种预置技能,也可以自定义 prompt 体验 ERNIE 3.0 Zeus 强大的零样本、小样本自然语言处理能力。同样的,通过 ERNIE3.0 Zeus 接口您可以随意输入内容,体验模型强大的续写能力。\n",
+ "通过飞桨旸谷社区[在线体验](https://wenxin.baidu.com/ernie3) ERNIE 3.0 Zeus 的文本理解和文本创作能力,您可以通过 ERNIE 3.0 Zeus Prompt 接口体验预置 prompt 技能,预置技能包括作文创作、文案创作、摘要生成、问题生成、古诗创作、对联续写、小说续写、自由问答、情感分析、信息抽取、同义改写、文本匹配、文本纠错、完型填空、Text2SQL 等十余种预置技能,也可以自定义 prompt 体验 ERNIE 3.0 Zeus 强大的零样本、小样本自然语言处理能力。同样的,通过 ERNIE3.0 Zeus 接口您可以随意输入内容,体验模型强大的续写能力。\n",
"\n",
"#### 通过 API 调用体验\n",
"\n",
- "ERNIE 3.0 Zeus 提供[ API 体验调用的入口](https://wenxin.baidu.com/ernie3),您也可以在飞桨旸谷社区 API 体验专区申请 AK、SK 进行接口调用体验。\n"
+ "ERNIE 3.0 Zeus 提供API体验调用的入口,您也可以在飞桨旸谷社区 API 体验专区申请 AK、SK 进行接口调用体验(上述已给出API接口调用体验流程)。"
]
}
],
diff --git a/modelcenter/ERNIE-3.0/info.yaml b/modelcenter/ERNIE-3.0/info.yaml
index 85dae6f88a23116f00a7236c9e06eb190c47916d..ce0343ba241009a35f353d4726c211dcf3e7a820 100644
--- a/modelcenter/ERNIE-3.0/info.yaml
+++ b/modelcenter/ERNIE-3.0/info.yaml
@@ -33,5 +33,5 @@ License: "apache.2.0"
Paper:
- title: "ERNIE-Tiny: A Progressive Distillation Framework for Pretrained Transformer Compression"
url: "https://arxiv.org/abs/2106.02241"
-IfTraining: 0
-IfOnlineDemo: 1
\ No newline at end of file
+IfTraining: 1
+IfOnlineDemo: 0
\ No newline at end of file
diff --git a/modelcenter/ERNIE-Layout/info.yaml b/modelcenter/ERNIE-Layout/info.yaml
index 6c8ebc641df566a11ef3f380caf2e6ddc6c2bba4..522f65d2f9a8b22febb6197b69a313e085c3e974 100644
--- a/modelcenter/ERNIE-Layout/info.yaml
+++ b/modelcenter/ERNIE-Layout/info.yaml
@@ -31,4 +31,4 @@ Paper:
- title: "ERNIE-Layout: Layout-Knowledge Enhanced Multi-modal Pre-training for Document Understanding"
url: https://arxiv.org/pdf/2210.06155.pdf
IfTraining: 1
-IfOnlineDemo: 1
\ No newline at end of file
+IfOnlineDemo: 0
\ No newline at end of file
diff --git a/modelcenter/ERNIE-M/info.yaml b/modelcenter/ERNIE-M/info.yaml
index 5461f315256b80a293b7cbd0bd58f2731a45f73c..3d7ab7e7ff6b149cac9af388b6542063e7461d8d 100644
--- a/modelcenter/ERNIE-M/info.yaml
+++ b/modelcenter/ERNIE-M/info.yaml
@@ -22,5 +22,5 @@ Paper:
- title: "ERNIE-M: Enhanced Multilingual Representation by Aligning Cross-lingual\
\ Semantics with Monolingual Corpora"
url: "https://arxiv.org/pdf/2012.15674.pdf"
-IfTraining: 0
+IfTraining: 1
IfOnlineDemo: 0
\ No newline at end of file
diff --git a/modelcenter/ERNIE-UIE/info.yaml b/modelcenter/ERNIE-UIE/info.yaml
index 48ba133c21db40e59dbfb1cf2a28e34ca246d516..243adc0b131b7eea130e0eab8331a85a4dc36d48 100644
--- a/modelcenter/ERNIE-UIE/info.yaml
+++ b/modelcenter/ERNIE-UIE/info.yaml
@@ -65,5 +65,5 @@ License: "apache.2.0"
Paper:
- title: "Unified Structure Generation for Universal Information Extraction"
url: "https://arxiv.org/pdf/2203.12277.pdf"
-IfTraining: 0
+IfTraining: 1
IfOnlineDemo: 1
\ No newline at end of file
diff --git a/modelcenter/ERNIE-ViLG/info.yaml b/modelcenter/ERNIE-ViLG/info.yaml
index d71f067022dc52db846ff6da046efa50daee4681..25794194de060eae3613cd5b93239f9074f9041e 100644
--- a/modelcenter/ERNIE-ViLG/info.yaml
+++ b/modelcenter/ERNIE-ViLG/info.yaml
@@ -14,4 +14,4 @@ Datasets: ""
Publisher: "Baidu"
License: "apache.2.0"
IfTraining: 0
-IfOnlineDemo: 1
+IfOnlineDemo: 0
diff --git a/modelcenter/ERNIE-ViLG/introduction_cn.ipynb b/modelcenter/ERNIE-ViLG/introduction_cn.ipynb
index d6c1d65d979c30e9f70cee5957aecd86d8f8f944..88f8d1730612b27294283552daf24dfef60a213d 100644
--- a/modelcenter/ERNIE-ViLG/introduction_cn.ipynb
+++ b/modelcenter/ERNIE-ViLG/introduction_cn.ipynb
@@ -8,7 +8,7 @@
"source": [
"## 1. ERNIE-ViLG模型简介\n",
"\n",
- "ERNIE-ViLG是一个知识增强跨模态图文生成大模型,将文生成图和图生成文任务融合到同一个模型进行端到端的学习,从而实现文本和图像的跨模态语义对齐。可以支持用户进行内容创作,让每个用户都能够体验到一个低门槛的创作平台。[点击此处进去体验页面](https://wenxin.baidu.com/moduleApi/ernieVilg)\n",
+ "ERNIE-ViLG是一个知识增强跨模态图文生成大模型,将文生成图和图生成文任务融合到同一个模型进行端到端的学习,从而实现文本和图像的跨模态语义对齐。可以支持用户进行内容创作,让每个用户都能够体验到一个低门槛的创作平台。[点击此处进入体验页面](https://wenxin.baidu.com/moduleApi/ernieVilg)\n",
"\n",
"## 2. 模型原理介绍\n",
"百度文心ERNIE-ViLG 模型提出统一的跨模态双向生成模型,通过自回归生成模式对图像生成和文本生成任务进行统一建模,更好地捕捉模态间的语义对齐关系,从而同时提升图文双向生成任务的效果。文心 ERNIE-ViLG 在文本生成图像的权威公开数据集 MS-COCO 上,图片质量评估指标 FID(Fréchet Inception Distance)远超 OpenAI 的DALL-E等同类模型,并刷新了图像描述多项任务的最好效果。此外,文心ERNIE-ViLG还凭借强大的跨模态理解能力,在生成式视觉问答任务上也取得了领先成绩。\n",
@@ -20,7 +20,7 @@
"\n",
"* 温馨提示:\n",
"\n",
- "每个账户每日免费请求ERNIE-ViLG API服务的上限为100条输入,免费请求额度共500条输入。如需提额,请在[合作咨询](https://wenxin.baidu.com/wenxin/apply)的需求描述里填写您的购买需求。\n",
+ "每个账户每日免费请求ERNIE-ViLG API服务的上限为100条输入,免费请求额度共500条输入。如需提额或者商务合作请在[合作咨询](https://wenxin.baidu.com/wenxin/apply)的需求描述里填写您的购买需求或者合作需求。\n",
"\n",
"### 获取API Key\n",
"\n",
@@ -131,14 +131,13 @@
"\n",
"## 5. 使用方案\n",
"\n",
- "\n",
"#### 通过飞桨旸谷社区在线体验\n",
"\n",
- "通过飞桨旸谷社区在线体验 ERNIE-ViLG的文生图能力。\n",
+ "通过飞桨旸谷社区[在线体验](https://wenxin.baidu.com/moduleApi/ernieVilg) ERNIE-ViLG的文生图能力。\n",
"\n",
"#### 通过 API 调用体验\n",
"\n",
- "ERNIE-ViLG 提供API体验调用的入口,您也可以在飞桨旸谷社区 API 体验专区申请 AK、SK 进行接口调用体验。"
+ "ERNIE-ViLG 提供API体验调用的入口,您也可以在飞桨旸谷社区 API 体验专区申请 AK、SK 进行接口调用体验(上述已给出API接口调用体验流程)。"
]
}
],
diff --git a/modelcenter/PINN-CFD/info.yaml b/modelcenter/PINN-CFD/info.yaml
index 7dd5258cb0067b3c954f5f866e09ff7facd2b220..6782938b38cf8e2b8445b66f1e4f44973c0d03f9 100644
--- a/modelcenter/PINN-CFD/info.yaml
+++ b/modelcenter/PINN-CFD/info.yaml
@@ -22,4 +22,4 @@ Datasets: "cylinder2D_continuous"
Publisher: "Baidu"
License: "apache.2.0"
IfTraining: 1
-IfOnlineDemo: 1
+IfOnlineDemo: 0
diff --git a/modelcenter/PP-HumanV2/info.yaml b/modelcenter/PP-HumanV2/info.yaml
index 3158543057ca9af69d070615615b9c700c5a327b..4227118d47e8b3c6b796a978f4be7e38cf6f7465 100644
--- a/modelcenter/PP-HumanV2/info.yaml
+++ b/modelcenter/PP-HumanV2/info.yaml
@@ -40,5 +40,5 @@ Example:
Datasets: ""
Publisher: "Baidu"
License: "apache.2.0"
-IfTraining: 0
+IfTraining: 1
IfOnlineDemo: 1
diff --git a/modelcenter/PP-MSVSR/info.yaml b/modelcenter/PP-MSVSR/info.yaml
index 2536be9f5c40c3fae07da22f9b1750a5b900005a..95c456d3f5feb0bf7875a04964acca0fc9df0df7 100644
--- a/modelcenter/PP-MSVSR/info.yaml
+++ b/modelcenter/PP-MSVSR/info.yaml
@@ -26,4 +26,4 @@ Paper:
- title: "PP-MSVSR: Multi-Stage Video Super-Resolution"
url: "https://arxiv.org/pdf/2112.02828.pdf"
IfTraining: 1
-IfOnlineDemo: 1
+IfOnlineDemo: 0
diff --git a/modelcenter/PP-OCRv2/info.yaml b/modelcenter/PP-OCRv2/info.yaml
index ec5d411c19f01b25d467d346f0a99ed411f2f170..224103debd5f7544fb0dff96dab0aba00d5c188a 100644
--- a/modelcenter/PP-OCRv2/info.yaml
+++ b/modelcenter/PP-OCRv2/info.yaml
@@ -21,5 +21,5 @@ License: "apache.2.0"
Paper:
- title: "PP-OCRv2: Bag of Tricks for Ultra Lightweight OCR System"
url: "https://arxiv.org/abs/2109.03144"
-IfTraining: 0
+IfTraining: 1
IfOnlineDemo: 1
diff --git a/modelcenter/PP-OCRv3/info.yaml b/modelcenter/PP-OCRv3/info.yaml
index e177ac9e3bc8e5d50e95d3cff6cd22f918e994b9..08a150d3986afab7b1e19290648528fe9f92a6eb 100644
--- a/modelcenter/PP-OCRv3/info.yaml
+++ b/modelcenter/PP-OCRv3/info.yaml
@@ -42,5 +42,5 @@ License: "apache.2.0"
Paper:
- title: "PP-OCRv3: More Attempts for the Improvement of Ultra Lightweight OCR System"
url: "https://arxiv.org/abs/2206.03001"
-IfTraining: 0
+IfTraining: 1
IfOnlineDemo: 1
diff --git a/modelcenter/PP-ShiTu/info.yaml b/modelcenter/PP-ShiTu/info.yaml
index 5a757c81452ec5fb74e7687eb5c3850fb752b461..283c31d6da684062a58a0c8a7ec7cd4ea5226d2d 100644
--- a/modelcenter/PP-ShiTu/info.yaml
+++ b/modelcenter/PP-ShiTu/info.yaml
@@ -22,4 +22,4 @@ Publisher: "Baidu"
License: "apache.2.0"
Paper: ""
IfTraining: 1
-IfOnlineDemo: 1
+IfOnlineDemo: 0
diff --git a/modelcenter/PP-StructureV2/info.yaml b/modelcenter/PP-StructureV2/info.yaml
index df7c1e30a21f994b8443d100ba456b5bd6493589..244d466d073407f5124c1f036f0498e8593c019f 100644
--- a/modelcenter/PP-StructureV2/info.yaml
+++ b/modelcenter/PP-StructureV2/info.yaml
@@ -45,5 +45,5 @@ License: "apache.2.0"
Paper:
- title: "PP-StructureV2: A Stronger Document Analysis System"
url: "https://arxiv.org/abs/2210.05391v2"
-IfTraining: 0
+IfTraining: 1
IfOnlineDemo: 1
diff --git a/modelcenter/PP-TinyPose/info.yaml b/modelcenter/PP-TinyPose/info.yaml
index 65e65c202a223cee272317278334855c1e66fb6b..d55efab3567da9ee85228a66c5b6f054bb31ce05 100644
--- a/modelcenter/PP-TinyPose/info.yaml
+++ b/modelcenter/PP-TinyPose/info.yaml
@@ -24,5 +24,5 @@ Example:
Datasets: "COCO train2017,AI Challenger trainset,COCO person keypoints val2017,COCO instances val2017"
Publisher: "Baidu"
License: "apache.2.0"
-IfTraining: 0
+IfTraining: 1
IfOnlineDemo: 1
diff --git a/modelcenter/PP-Vehicle/info.yaml b/modelcenter/PP-Vehicle/info.yaml
index 39977410794100530f476b2d0f9c787f247da3c5..43dad246c703521cae23a30847324bc1c324a432 100644
--- a/modelcenter/PP-Vehicle/info.yaml
+++ b/modelcenter/PP-Vehicle/info.yaml
@@ -24,5 +24,5 @@ Example:
Datasets: "BDD-100k"
Publisher: "Baidu"
License: "apache.2.0"
-IfTraining: 0
+IfTraining: 1
IfOnlineDemo: 1
diff --git a/modelcenter/VSQL/.gitkeep b/modelcenter/PQ-VSQL/.gitkeep
similarity index 100%
rename from modelcenter/VSQL/.gitkeep
rename to modelcenter/PQ-VSQL/.gitkeep
diff --git a/modelcenter/PQ-VSQL/download_cn.md b/modelcenter/PQ-VSQL/download_cn.md
new file mode 100644
index 0000000000000000000000000000000000000000..a3b50c4fb8b22b370bb6877730f269f00b33681b
--- /dev/null
+++ b/modelcenter/PQ-VSQL/download_cn.md
@@ -0,0 +1,5 @@
+# 模型列表
+
+| 模型名称 | 模型简介 | 数据集 | 下载地址 |
+|---|---|---|---|
+| VSQL | 图片分类 | MNIST(0,1) | [预训练模型](https://release-data.cdn.bcebos.com/PaddleQuantum/vsql.pdparams) |
diff --git a/modelcenter/PQ-VSQL/download_en.md b/modelcenter/PQ-VSQL/download_en.md
new file mode 100644
index 0000000000000000000000000000000000000000..843ee2629ae29e55c6f31b02f27c588c95c5558a
--- /dev/null
+++ b/modelcenter/PQ-VSQL/download_en.md
@@ -0,0 +1,5 @@
+# Model list
+
+| Model | Introduction | Dataset | Download |
+|---|---|---|---|
+| VSQL | Image classification | MNIST(0, 1) | [pretrained model](https://release-data.cdn.bcebos.com/PaddleQuantum/vsql.pdparams) |
diff --git a/modelcenter/PQ-VSQL/info.yaml b/modelcenter/PQ-VSQL/info.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..fd046510fba488a546a10fa879660d8a9667dd67
--- /dev/null
+++ b/modelcenter/PQ-VSQL/info.yaml
@@ -0,0 +1,20 @@
+---
+Model_Info:
+ name: "PQ-VSQL"
+ description: "基于影子特征的量子-经典混合模型"
+ description_en: "Hybrid quantum-classical model based on the shadow features"
+ update_time:
+ icon: "https://user-images.githubusercontent.com/23690325/203944010-3f7e9373-d6d3-4bf5-989a-d5817b15e20f.png"
+Task:
+- tag: "量子计算"
+ tag_en: "Quantum Computing"
+ sub_tag: "变分影子量子学习"
+ sub_tag_en: "VSQL"
+Datasets: MNIST
+Pulisher: Baidu
+License: Apache 2.0
+Paper:
+- title: "VSQL: Variational Shadow Quantum Learning for Classification"
+ url: https://ojs.aaai.org/index.php/AAAI/article/view/17016
+IfTraining: 0
+IfOnlineDemo: 0
\ No newline at end of file
diff --git a/modelcenter/PQ-VSQL/introduction_cn.ipynb b/modelcenter/PQ-VSQL/introduction_cn.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..9c8d2a56f17ff0ba5dad949a3a8006bc03957008
--- /dev/null
+++ b/modelcenter/PQ-VSQL/introduction_cn.ipynb
@@ -0,0 +1,505 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "chronic-tunisia",
+ "metadata": {},
+ "source": [
+ "## 1. VSQL 模型简介\n",
+ "\n",
+ "变分影子量子学习(variational shadow quantum learning, VSQL)是一个在监督学习框架下的量子–经典混合算法。它使用了参数化量子电路(parameterized quantum circuit, PQC)和经典影子(classical shadow),和通常使用的变分量子算法(variational quantum alogorithm, VQA)不同的是,VSQL 只从子空间获取局部特征,而不是从整个希尔伯特空间获取特征。"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8429d648",
+ "metadata": {},
+ "source": [
+ "## 2. 模型原理简介\n",
+ "\n",
+ "VSQL 的流程图如下:\n",
+ "\n",
+ "![pipeline](https://ai-studio-static-online.cdn.bcebos.com/36c5194bc48a4af88560172fdd7ec15b8fd3225c27b644acad1981046a48d1ec \"VSQL 流程图\")\n",
+ "
VSQL 流程图
\n",
+ "\n",
+ "其训练步骤为:\n",
+ "\n",
+ "1. 将经典数据 $\\mathbf{x}^i$ 编码到量子态 $\\left|\\mathbf{x}^i\\right>$。\n",
+ "2. 准备一个参数化局部量子电路 $U(\\mathbf{\\theta})$ 并且初始化它的参数 $\\mathbf{\\theta}$。\n",
+ "3. 在前几个量子比特上作用 $U(\\mathbf{\\theta})$,然后通过测量局部可观测量(比如说泡利 $X\\otimes X\\cdots \\otimes X$ 算符)来获取一个局部影子特征。\n",
+ "4. 每次将 $U(\\mathbf{\\theta})$ 向下移动一个量子比特,重复步骤3直到 $U(\\mathbf{\\theta})$ 作用到最后一个量子比特上。\n",
+ "5. 将步骤3–4中得到的所有局部影子特征传入经典 FCNN 并通过激活函数得到预测的标签 $\\tilde{\\mathbf{y}}^i$。对于多分类问题来说,我们使用归一化指数函数 (softmax) 作为激活函数。\n",
+ "6. 重复步骤3–5直到数据集内所有的数据点都经过了处理。然后计算损失函数 $\\mathcal{L}(\\mathbf{\\theta}, \\mathbf{W}, \\mathbf{b})$。\n",
+ "7. 通过梯度下降等优化方法调整参数 $\\mathbf{\\theta}$、$\\mathbf{W}$ 和 $\\mathbf{b}$ 的值,从而最小化损失函数。这样我们就得到了优化后的模型 $\\mathcal{F}$。\n",
+ "\n",
+ "由于 VSQL 只获取局部影子特征,所以它可以比较容易地在有拓扑连接限制的量子设备上实现。除此之外,因为我们用同一个 $U(\\mathbf{\\theta})$ 来获取整个电路上的局部影子特征,所以需要训练的参数数量相对于通常使用的变分量子分类器来说大大减少。\n",
+ "\n",
+ "### 2.1 局部影子电路介绍\n",
+ "\n",
+ "在讲电路的细节之前,我们需要说明几个参数:\n",
+ "- $n$:编码后量子态的量子比特数目。\n",
+ "- $n_{qsc}$:量子影子电路的宽度。我们每次只在连续 $n_{qsc}$ 个量子比特上作用 $U(\\mathbf{\\theta})$。\n",
+ "- $D$:电路的深度,表示 $U(\\mathbf{\\theta})$ 门中某一层电路重复的次数。\n",
+ "\n",
+ "这里我们给出 $n=4$、$n_{qsc}=2$ 时的一个例子:\n",
+ "\n",
+ "我们首先在前两个量子比特上作用 $U(\\mathbf{\\theta})$,并且获取第一个影子特征 $O_1$。\n",
+ "\n",
+ "![qubit0](https://ai-studio-static-online.cdn.bcebos.com/a544360d2b864cd2882c6965bf30e1a0f5fbf089173043cd95a5821b1cdbd799 \"获取第一个影子特征\")\n",
+ "获取第一个影子特征
\n",
+ "\n",
+ "然后我们准备一样的输入态 $\\left|\\mathbf{x}^i\\right>$,在中间两个量子比特上作用 $U(\\mathbf{\\theta})$,得到第二个影子特征 $O_2$。\n",
+ "\n",
+ "![qubit1](https://ai-studio-static-online.cdn.bcebos.com/9cdb70da3e5f47c2bd089f020975a987e1348d71d724418d890591f298786d4c \"获取第二个影子特征\")\n",
+ "获取第二个影子特征
\n",
+ "\n",
+ "最后,我们再准备一个一样的输入态,在最后两个量子比特上作用 $U(\\mathbf{\\theta})$,得到影子特征 $O_3$。这样我们就处理完了这个数据点!\n",
+ "\n",
+ "![qubit2](https://ai-studio-static-online.cdn.bcebos.com/6a404995be1141bc9fd6ca36b5e394e00fbe302621c4413bbf86554de6bfc964 \"获取第三个影子特征\")\n",
+ "获取第三个影子特征
\n",
+ "\n",
+ "通常来说,处理一个数据点需要重复以上步骤 $n - n_{qsc} + 1$ 次。有一点需要指出的是,在上面这个例子中我们只使用了一个影子电路,在获取这三个影子特征时我们使用同样的参数 $\\mathbf{\\theta}$。你可以选择增加影子电路的数量来解决更复杂的问题,这里需要注意的是不同影子电路中的参数 $\\mathbf{\\theta}$ 不同。 \n",
+ " \n",
+ "在后面的 MNIST 二分类任务中,我们将使用2–局部影子电路,即 $n_{qsc}=2$。下图展示了这个影子电路的结构。\n",
+ "\n",
+ "![2-local](https://ai-studio-static-online.cdn.bcebos.com/0c1035262cb64f61bd3cc87dbf53253aa6a7ecc170634c4db8dd71d576a9409c \"local数为2时的影子电路结构\")\n",
+ "local数为2时的影子电路结构
\n",
+ "\n",
+ "为了增强量子电路的表达能力,我们将重复 $D$ 次虚线框中的结构。$U(\\mathbf{\\theta})$ 的设计并不是唯一的,这里展示的仅仅是一个例子,也可以设计别的电路结构。"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2f0070ae",
+ "metadata": {},
+ "source": [
+ "## 3. 模型效果\n",
+ "\n",
+ "VSQL 在 MNIST 数据集上的二分类效果如下:\n",
+ "\n",
+ "![binary-classification](https://ai-studio-static-online.cdn.bcebos.com/03c38b174d0e47ae9dbeea6dfda1333d6d3aa74209594324b78c9159b72e7e8a \"二分类效果图\")\n",
+ "二分类效果图
\n",
+ "\n",
+ "VSQL 在 MNIST 数据集上的十分类效果如下:\n",
+ "\n",
+ "![10-classification](https://ai-studio-static-online.cdn.bcebos.com/54a0273672ad4ec5ba6b7d73b3b225f8d97380c43ceb495a82d16a258117182b \"十分类效果图\")\n",
+ "十分类效果图
\n",
+ "\n",
+ "由表可见,相比于其它的量子神经网络,VSQL 可以使用很少的参数实现更高的分类准确率。而与经典神经网络相比,在十分类任务上,VSQL 也可以使用较少的参数达到相近的效果。当数据量较小时,VSQL 比经典神经网络的效果会更好。"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "17661d06",
+ "metadata": {},
+ "source": [
+ "## 4. 模型如何使用\n",
+ "\n",
+ "按照如下代码来配置环境:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "eb7a2be4",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Looking in indexes: https://mirrors.bfsu.edu.cn/pypi/web/simple\n",
+ "Requirement already satisfied: paddle-quantum in /Users/wangzihe/temp/baidu/QPlatform/PaddleQu (2.2.1)\n",
+ "Requirement already satisfied: paddlepaddle<=2.3.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (2.3.0)\n",
+ "Requirement already satisfied: scipy in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (1.7.1)\n",
+ "Collecting protobuf<=3.20.1\n",
+ " Using cached https://mirrors.bfsu.edu.cn/pypi/web/packages/92/0e/b8a60441178c8725fb3afa648e80c312a77feab31e7831d69c672b3c18cc/protobuf-3.20.1-cp37-cp37m-macosx_10_9_x86_64.whl (961 kB)\n",
+ "Requirement already satisfied: networkx>=2.5 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (2.6.3)\n",
+ "Requirement already satisfied: qcompute in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (3.0.0)\n",
+ "Requirement already satisfied: matplotlib>=3.3.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (3.5.2)\n",
+ "Requirement already satisfied: tqdm in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (4.64.0)\n",
+ "Requirement already satisfied: openfermion in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (1.5.1)\n",
+ "Requirement already satisfied: opencv-python in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (4.6.0.66)\n",
+ "Requirement already satisfied: scikit-learn in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (1.0.2)\n",
+ "Requirement already satisfied: fastdtw in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (0.3.4)\n",
+ "Requirement already satisfied: cvxpy in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (1.2.2)\n",
+ "Requirement already satisfied: rich in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (12.0.1)\n",
+ "Requirement already satisfied: pyscf in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddle-quantum) (2.1.1)\n",
+ "Requirement already satisfied: pillow>=6.2.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from matplotlib>=3.3.0->paddle-quantum) (9.3.0)\n",
+ "Requirement already satisfied: pyparsing>=2.2.1 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from matplotlib>=3.3.0->paddle-quantum) (3.0.9)\n",
+ "Requirement already satisfied: python-dateutil>=2.7 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from matplotlib>=3.3.0->paddle-quantum) (2.8.2)\n",
+ "Requirement already satisfied: packaging>=20.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from matplotlib>=3.3.0->paddle-quantum) (21.3)\n",
+ "Requirement already satisfied: cycler>=0.10 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from matplotlib>=3.3.0->paddle-quantum) (0.11.0)\n",
+ "Requirement already satisfied: numpy>=1.17 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from matplotlib>=3.3.0->paddle-quantum) (1.21.3)\n",
+ "Requirement already satisfied: fonttools>=4.22.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from matplotlib>=3.3.0->paddle-quantum) (4.38.0)\n",
+ "Requirement already satisfied: kiwisolver>=1.0.1 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from matplotlib>=3.3.0->paddle-quantum) (1.4.4)\n",
+ "Requirement already satisfied: paddle-bfloat==0.1.2 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddlepaddle<=2.3.0->paddle-quantum) (0.1.2)\n",
+ "Requirement already satisfied: astor in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddlepaddle<=2.3.0->paddle-quantum) (0.8.1)\n",
+ "Requirement already satisfied: requests>=2.20.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddlepaddle<=2.3.0->paddle-quantum) (2.28.0)\n",
+ "Requirement already satisfied: six in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddlepaddle<=2.3.0->paddle-quantum) (1.16.0)\n",
+ "Requirement already satisfied: decorator in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddlepaddle<=2.3.0->paddle-quantum) (5.1.1)\n",
+ "Requirement already satisfied: opt-einsum==3.3.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from paddlepaddle<=2.3.0->paddle-quantum) (3.3.0)\n",
+ "Requirement already satisfied: scs>=1.1.6 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from cvxpy->paddle-quantum) (3.2.2)\n",
+ "Requirement already satisfied: osqp>=0.4.1 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from cvxpy->paddle-quantum) (0.6.2.post5)\n",
+ "Requirement already satisfied: ecos>=2 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from cvxpy->paddle-quantum) (2.0.10)\n",
+ "Requirement already satisfied: cirq-google>=0.15.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from openfermion->paddle-quantum) (1.0.0)\n",
+ "Requirement already satisfied: sympy in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from openfermion->paddle-quantum) (1.10.1)\n",
+ "Requirement already satisfied: deprecation in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from openfermion->paddle-quantum) (2.1.0)\n",
+ "Requirement already satisfied: cirq-core>=0.15.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from openfermion->paddle-quantum) (1.0.0)\n",
+ "Requirement already satisfied: pubchempy in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from openfermion->paddle-quantum) (1.0.4)\n",
+ "Requirement already satisfied: h5py>=2.8 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from openfermion->paddle-quantum) (3.7.0)\n",
+ "Collecting scipy\n",
+ " Using cached https://mirrors.bfsu.edu.cn/pypi/web/packages/4c/4a/440cc9703938bbc86636ff6b9e17810f3d0f06e9b41891c5433dc4cd9091/scipy-1.1.0-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (16.7 MB)\n",
+ "Collecting qcompute\n",
+ " Using cached https://mirrors.bfsu.edu.cn/pypi/web/packages/f6/57/823a3f3e3fd6e327453c4d028751fee7292784e1f2447ae6b7c0f3cc6565/qcompute-2.0.6-py3-none-any.whl (172 kB)\n",
+ " Using cached https://mirrors.bfsu.edu.cn/pypi/web/packages/8e/03/0a64ec2b7e6395fa53688ad3e489163218c45f36f0c96b448e0279391538/qcompute-2.0.4-py3-none-any.whl (96 kB)\n",
+ "Requirement already satisfied: bidict in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from qcompute->paddle-quantum) (0.22.0)\n",
+ "Requirement already satisfied: pyprimes in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from qcompute->paddle-quantum) (0.1)\n",
+ "Requirement already satisfied: bce-python-sdk in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from qcompute->paddle-quantum) (0.8.73)\n",
+ "Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from rich->paddle-quantum) (0.9.1)\n",
+ "Requirement already satisfied: pygments<3.0.0,>=2.6.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from rich->paddle-quantum) (2.13.0)\n",
+ "Requirement already satisfied: typing-extensions<5.0,>=3.7.4 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from rich->paddle-quantum) (4.3.0)\n",
+ "Requirement already satisfied: joblib>=0.11 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from scikit-learn->paddle-quantum) (1.2.0)\n",
+ "Requirement already satisfied: threadpoolctl>=2.0.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from scikit-learn->paddle-quantum) (3.1.0)\n",
+ "Requirement already satisfied: backports.cached-property~=1.0.1 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from cirq-core>=0.15.0->openfermion->paddle-quantum) (1.0.2)\n",
+ "Requirement already satisfied: duet~=0.2.7 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from cirq-core>=0.15.0->openfermion->paddle-quantum) (0.2.7)\n",
+ "Requirement already satisfied: pandas in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from cirq-core>=0.15.0->openfermion->paddle-quantum) (1.3.5)\n",
+ "Requirement already satisfied: sortedcontainers~=2.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from cirq-core>=0.15.0->openfermion->paddle-quantum) (2.4.0)\n",
+ "Requirement already satisfied: google-api-core[grpc]<2.0.0dev,>=1.14.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from cirq-google>=0.15.0->openfermion->paddle-quantum) (1.33.2)\n",
+ "Requirement already satisfied: proto-plus>=1.20.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from cirq-google>=0.15.0->openfermion->paddle-quantum) (1.22.1)\n",
+ "Requirement already satisfied: qdldl in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from osqp>=0.4.1->cvxpy->paddle-quantum) (0.1.5.post2)\n",
+ "Requirement already satisfied: charset-normalizer~=2.0.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from requests>=2.20.0->paddlepaddle<=2.3.0->paddle-quantum) (2.0.12)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from requests>=2.20.0->paddlepaddle<=2.3.0->paddle-quantum) (2022.9.24)\n",
+ "Requirement already satisfied: idna<4,>=2.5 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from requests>=2.20.0->paddlepaddle<=2.3.0->paddle-quantum) (3.4)\n",
+ "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from requests>=2.20.0->paddlepaddle<=2.3.0->paddle-quantum) (1.26.12)\n",
+ "Requirement already satisfied: future>=0.6.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from bce-python-sdk->qcompute->paddle-quantum) (0.18.2)\n",
+ "Requirement already satisfied: pycryptodome>=3.8.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from bce-python-sdk->qcompute->paddle-quantum) (3.15.0)\n",
+ "Requirement already satisfied: mpmath>=0.19 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from sympy->openfermion->paddle-quantum) (1.2.1)\n",
+ "Collecting typing-extensions<5.0,>=3.7.4\n",
+ " Using cached https://mirrors.bfsu.edu.cn/pypi/web/packages/2e/35/6c4fff5ab443b57116cb1aad46421fb719bed2825664e8fe77d66d99bcbc/typing_extensions-3.10.0.0-py3-none-any.whl (26 kB)\n",
+ "Collecting protobuf<=3.20.1\n",
+ " Using cached https://mirrors.bfsu.edu.cn/pypi/web/packages/ea/fe/82cf68917308b208731487f986db209e56903c30e324499b6bf0cc6a6203/protobuf-3.19.6-cp37-cp37m-macosx_10_9_x86_64.whl (979 kB)\n",
+ "Requirement already satisfied: google-auth<3.0dev,>=1.25.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google>=0.15.0->openfermion->paddle-quantum) (2.14.1)\n",
+ "Requirement already satisfied: googleapis-common-protos<2.0dev,>=1.56.2 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google>=0.15.0->openfermion->paddle-quantum) (1.57.0)\n",
+ "Requirement already satisfied: grpcio<2.0dev,>=1.33.2 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google>=0.15.0->openfermion->paddle-quantum) (1.50.0)\n",
+ "Requirement already satisfied: grpcio-status<2.0dev,>=1.33.2 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google>=0.15.0->openfermion->paddle-quantum) (1.48.2)\n",
+ "Requirement already satisfied: pytz>=2017.3 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from pandas->cirq-core>=0.15.0->openfermion->paddle-quantum) (2022.6)\n",
+ "Requirement already satisfied: pyasn1-modules>=0.2.1 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from google-auth<3.0dev,>=1.25.0->google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google>=0.15.0->openfermion->paddle-quantum) (0.2.8)\n",
+ "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from google-auth<3.0dev,>=1.25.0->google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google>=0.15.0->openfermion->paddle-quantum) (5.2.0)\n",
+ "Requirement already satisfied: rsa<5,>=3.1.4 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from google-auth<3.0dev,>=1.25.0->google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google>=0.15.0->openfermion->paddle-quantum) (4.9)\n",
+ "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages (from pyasn1-modules>=0.2.1->google-auth<3.0dev,>=1.25.0->google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google>=0.15.0->openfermion->paddle-quantum) (0.4.8)\n",
+ "Installing collected packages: typing-extensions, scipy, protobuf, qcompute\n",
+ " Attempting uninstall: typing-extensions\n",
+ " Found existing installation: typing_extensions 4.3.0\n",
+ " Uninstalling typing_extensions-4.3.0:\n",
+ " Successfully uninstalled typing_extensions-4.3.0\n",
+ " Attempting uninstall: scipy\n",
+ " Found existing installation: scipy 1.7.1\n",
+ " Uninstalling scipy-1.7.1:\n",
+ " Successfully uninstalled scipy-1.7.1\n",
+ " Attempting uninstall: protobuf\n",
+ " Found existing installation: protobuf 4.21.1\n",
+ " Uninstalling protobuf-4.21.1:\n",
+ " Successfully uninstalled protobuf-4.21.1\n",
+ " Attempting uninstall: qcompute\n",
+ " Found existing installation: qcompute 3.0.0\n",
+ " Uninstalling qcompute-3.0.0:\n",
+ " Successfully uninstalled qcompute-3.0.0\n",
+ "Successfully installed protobuf-3.19.6 qcompute-2.0.4 scipy-1.1.0 typing-extensions-3.10.0.0\n",
+ "Note: you may need to restart the kernel to use updated packages.\n",
+ "--2022-11-24 13:44:45-- https://release-data.cdn.bcebos.com/PaddleQuantum/vsql.pdparams\n",
+ "Resolving release-data.cdn.bcebos.com (release-data.cdn.bcebos.com)... 222.35.73.1\n",
+ "Connecting to release-data.cdn.bcebos.com (release-data.cdn.bcebos.com)|222.35.73.1|:443... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 857 [application/octet-stream]\n",
+ "Saving to: ‘vsql.pdparams.1’\n",
+ "\n",
+ "vsql.pdparams.1 100%[===================>] 857 --.-KB/s in 0s \n",
+ "\n",
+ "2022-11-24 13:44:46 (204 MB/s) - ‘vsql.pdparams.1’ saved [857/857]\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 安装量桨\n",
+ "%pip install paddle-quantum\n",
+ "# 下载预训练模型\n",
+ "!wget https://release-data.cdn.bcebos.com/PaddleQuantum/vsql.pdparams"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "f8a3ebf3",
+ "metadata": {},
+ "source": [
+ "接下来,可以加载模型并进行测试:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "53a5f59a",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages/scipy/linalg/__init__.py:212: DeprecationWarning: The module numpy.dual is deprecated. Instead of using dual, use the functions directly from numpy or scipy.\n",
+ " from numpy.dual import register_func\n",
+ "/Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages/scipy/sparse/sputils.py:16: DeprecationWarning: `np.typeDict` is a deprecated alias for `np.sctypeDict`.\n",
+ " supported_dtypes = [np.typeDict[x] for x in supported_dtypes]\n",
+ "/Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages/scipy/special/orthogonal.py:81: DeprecationWarning: `np.int` is a deprecated alias for the builtin `int`. To silence this warning, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.\n",
+ "Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n",
+ " from numpy import (exp, inf, pi, sqrt, floor, sin, cos, around, int,\n",
+ "/Users/wangzihe/opt/anaconda3/envs/py37/lib/python3.7/site-packages/scipy/io/matlab/mio5.py:98: DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\n",
+ "Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n",
+ " from .mio5_utils import VarReader5\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 导入所需要的包\n",
+ "import os\n",
+ "import warnings\n",
+ "\n",
+ "warnings.filterwarnings('ignore')\n",
+ "os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'python'\n",
+ "\n",
+ "import numpy as np\n",
+ "import paddle\n",
+ "import paddle_quantum as pq\n",
+ "import matplotlib.pyplot as plt\n",
+ "from paddle_quantum.qml.vsql import VSQL\n",
+ "\n",
+ "# 设置模型参数\n",
+ "num_qubits = 10\n",
+ "num_shadow = 2\n",
+ "classes = [0, 1]\n",
+ "num_classes = len(classes)\n",
+ "depth = 1\n",
+ "\n",
+ "# 加载已训练的模型\n",
+ "model = VSQL(\n",
+ " num_qubits=num_qubits,\n",
+ " num_shadow=num_shadow,\n",
+ " num_classes=num_classes,\n",
+ " depth=depth,\n",
+ ")\n",
+ "state_dict = paddle.load('./vsql.pdparams')\n",
+ "model.set_state_dict(state_dict)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "8f54b4de",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "--2022-11-24 13:45:04-- https://ai-studio-static-online.cdn.bcebos.com/088dc9dbabf349c88d029dfd2e07827aa6e41ba958c5434bbd96bc167fc65347\n",
+ "Resolving ai-studio-static-online.cdn.bcebos.com (ai-studio-static-online.cdn.bcebos.com)... 222.35.73.1\n",
+ "Connecting to ai-studio-static-online.cdn.bcebos.com (ai-studio-static-online.cdn.bcebos.com)|222.35.73.1|:443... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 290 [image/png]\n",
+ "Saving to: ‘data-0.png’\n",
+ "\n",
+ "data-0.png 100%[===================>] 290 --.-KB/s in 0s \n",
+ "\n",
+ "2022-11-24 13:45:05 (277 MB/s) - ‘data-0.png’ saved [290/290]\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ "