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)