Adding a New Encoder#

To add a new encoder, inherit from BaseEncoder:

from psipose.encoders._base import BaseEncoder
import pennylane as qml

class MyEncoder(BaseEncoder):
    """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)