uniqc.torch_adapter.quantum_layer module¶
QuantumLayer: PyTorch nn.Module for quantum circuits.
This module provides a PyTorch-compatible layer that wraps a parametric quantum circuit, enabling gradient-based optimization via the parameter-shift rule.
- class uniqc.torch_adapter.quantum_layer.QuantumLayer(circuit, expectation_fn, n_outputs=1, init_params=None, shift=1.5707963267948966)[source]¶
Bases:
ModulePyTorch layer wrapping a parametric quantum circuit.
Supports automatic differentiation via the parameter-shift rule for gradient-based optimization.
- Parameters:
circuit – Parametric Circuit or template with _parameters
expectation_fn – Function computing expectation from a bound circuit
n_outputs – Number of output values (default: 1)
init_params – Initial parameter values (optional)
shift – Shift value for parameter-shift rule (default: π/2)
Example
>>> @circuit_def(name="vqe", qregs={"q": 2}, params=["theta"]) ... def vqe_circuit(circ, q, theta): ... circ.ry(q[0], theta[0]) ... circ.cnot(q[0], q[1]) ... return circ >>> >>> qlayer = QuantumLayer( ... circuit=vqe_circuit.build_standalone(), ... expectation_fn=lambda c: simulate_and_measure(c) ... ) >>> optimizer = torch.optim.Adam(qlayer.parameters(), lr=0.01)