变分量子分类器的python框架
qclassif的Python项目详细描述
qclassify
目标是提供一种使用门模型量子设备执行分类任务的一般可定制方法。量子设备既可以由量子模拟器模拟,也可以通过rigetti computing的[量子云服务](https://www.rigetti.com/qcs)访问基于云的量子处理器模拟。
社区(见FARHI和NEVEN)(http://ARXIV.org/ABS/ 1802.06002),[Suuld等人](http://ARXIV.org/ABS/ 1804.00633),[ MITARAI等](http://ARXV.O/ABS/1803.074.5)和[HAVLIKEK等人](http://ARXIV.org/ABS/ 1804.11326)。qclassify设计中采用的总体框架来自于文献中的这些贡献。工作流可以在下面的图1中进行总结。
![流程图](https://github.com/zapatacomputing/qclassify/blob/master/images/qclassify.png)
*图1:qclassify工作流程图。每个矩形代表一个数据对象,每个椭圆代表一个方法。*
该实现允许对量子分类器的以下组件进行模块化设计(图1):
1。**编码器**:将经典数据向量转换为量子状态。参见“encoder.py”。
+1.1**经典预处理器**:将输入数据向量映射到电路参数。参见“preprocessing.py”。
+1.2**量子态准备**:将参数化电路应用于全零输入状态,以生成对输入数据进行编码的量子态。参见“编码循环py”。
2.**处理器**:从编码量子态中提取经典信息。参见“processor.py”。
+2.1**量子态转换**:将参数化电路应用于编码量子态,将其转换为更适合通过测量和经典后处理提取信息的形式。参见“proc_circ.py”。
+2.2**信息提取**:从输出量子态中提取经典信息。见“后处理.py”。
-2.2.1**测量**:重复运行量子电路,执行测量并收集测量统计信息
-2.2.2**经典后处理**:从测量统计信息中收集信息并生成量子分类器的输出标签。
执行“import qclassify”测试终端中的安装。
运行:
git clone https://github.com/zapatacomputing/qclassify
cd qclassify
python-m pip install-e。
注意,使用的pyquil版本需要python 3.6或更高版本。要在用户qmi上安装,请单击[此处](https://github.com/hsim13372/qcompress/blob/master/qmi_instructions.rst)。
笔记本功能
----
[qclassify_demo.ipynb](https://github.com/zapatacomputing/qclassify/blob/master/examples/qclassify_demo.ipynb)使用简单的两位电路来学习异或数据集。
请随时提交问题和/或请求!
和ALAN Aspuru Guzik。< BR/> *基于云的量子计算机上的算法部署框架*.BR/> [ARXIV:1810.10576 ](http://ARXIV.org/ABS/ 1810.10576)。2018年。