Parameterized gates

Parameterized gates#

FlagQuantum supports trainable quantum circuits with gradient computation:

# Create a gate with trainable parameter
rx_gate = fq.RX(wires=[0], trainable=True)
rx_gate(device)  # Apply to device

# Optimize the parameter
optimizer = torch.optim.Adam([rx_gate.params])
for _ in range(100):
    optimizer.zero_grad()
    device.reset_states()
    rx_gate(device)
    loss = fq.measure_allZ(device).sum()
    loss.backward()
    optimizer.step()