paddle_quantum.ansatz.vans
可变结构电路的功能实现。
- cir_decompose(cir)
将电路中的 Layer 分解成量子门, 如果需要的话可以把所有参数门的输入转为可训练参数
- 参数:
cir (Circuit) – 待分解电路
trainable (bool, optional) – 是否将分解后的参数量子门输入转为参数baidu
- 返回:
分解后的电路
- 返回类型:
备注
该量子电路稳定支持原生门,不支持 oracle 等其他自定义量子门。
- class Inserter
基类:
object
用于向电路中加入模块的插入器类。
- class Simplifier
基类:
object
用于电路简化的简化器类。
- class VAns(n, loss_func, *loss_func_args, epsilon=0.1, insert_rate=2, iter=100, iter_out=10, LR=0.1, threshold=0.002, accept_wall=100, zero_init_state=True)
基类:
object
自动优化电路结构的 VAns 类。
备注
输入的损失函数的第一个参数必须为量子电路。
- 参数:
n (int) – 量子比特数量。
loss_func (Callable[[Circuit, Any], paddle.Tensor]) – 损失函数。
*loss_func_args (Any) – 损失函数除了电路以外的所有参数。
epsilon (float, optional) – 添加模块的初始化参数浮动范围,默认为
0.1
。insert_rate (float, optional) – 添加率,控制一次添加模块的数量,默认为
2
。iter (int, optional) – 优化参数迭代次数,默认为
100
。iter_out (int, optional) – 优化结构的迭代次数,默认为
10
。LR (float, optional) – 学习率,默认为
0.1
。threshold (float, optional) – 删除量子门时允许损失上升的阈值,默认为
0.002
。accept_wall (float, optional) – 完成一轮结构优化后的电路采纳率,默认为
100
。zero_init_state (bool, optional) – 电路作用的初始态是否为 \(|0\rangle\),默认为
True
。