import tensorflow as tf import tensorflow_quantum as tfq import cirq
推荐阅读 Broughton, Michael, Guillaume Verdon, Trevor McCourt, Antonio J. Martinez, Jae Hyeon Yoo, Sergei V. Isakov, Philip Massey, et al. “ TensorFlow Quantum: A Software Framework for Quantum Machine Learning.(http://arxiv.org/abs/2003.02989) ” ArXiv:2003.02989 [Cond-Mat, Physics:Quant-Ph], March 5, 2020. (TensorFlow Quantum 白皮书)
为了区分这两类数据,我们接下来建立了一个量子模型,这个模型将单比特量子态绕布洛赫球面的 x 轴逆时针旋转 弧度。变换过后量子态数据的测量值送入“全连接层+softmax”的经典机器学习模型,并使用交叉熵作为损失函数。模型训练过程会自动同时调整量子模型中 的值和全连接层的权值,使得整个混合量子-经典机器学习模型的准确度较高。
import cirq import sympy import numpy as np import tensorflow as tf import tensorflow_quantum as tfq
q = cirq.GridQubit(0, 0)
# 准备量子数据集(q_data, label) add_noise = lambda x: x + np.random.normal(0, 0.25 * np.pi) q_data = tfq.convert_to_tensor( [cirq.Circuit( cirq.rx(add_noise(0.5 * np.pi))(q), cirq.ry(add_noise(0))(q) ) for _ in range(100)] + [cirq.Circuit( cirq.rx(add_noise(1.5 * np.pi))(q), cirq.ry(add_noise(0))(q) ) for _ in range(100)] ) label = np.array([0] * 100 + [1] * 100)