Adding a New Encoder#

To add a new encoder, inherit from FeatureMap:

from psipose.feature_maps.base import FeatureMap
import pennylane as qml

class MyEncoder(FeatureMap):
    """My custom encoder."""

    def __init__(self, param1=default_value):
        self.param1 = param1

    def fit(self, X):
        """Fit encoder to data (determine n_qubits if needed)."""
        self.n_qubits_ = X.shape[1]  # or custom logic
        return self

    def encode(self, x, wires):
        """Encode a single sample x onto wires."""
        # Your encoding logic here
        for i, wire in enumerate(wires[:len(x)]):
            qml.RY(x[i], wires=wire)