Adding a New Ansatz#
To add a new ansatz, inherit from BaseAnsatz:
from psipose.ansatze._base import BaseAnsatz
import pennylane as qml
class MyAnsatz(BaseAnsatz):
"""My custom ansatz."""
def __init__(self, layers=2):
self.layers = layers
@classmethod
def weight_shape(cls, n_qubits):
"""Return shape of weight tensor."""
return (layers, n_qubits, 3) # example
def circuit(self, weights, wires):
"""Apply ansatz circuit with given weights."""
for layer in range(self.layers):
for i, wire in enumerate(wires):
qml.Rot(*weights[layer, i], wires=wire)