Skip to content

Encoders API

VSAX encoders convert structured data into hypervector representations.

Base Classes

vsax.encoders.AbstractEncoder

Bases: ABC

Abstract base class for encoding structured data into hypervectors.

All encoders must implement the encode() method. Encoders can optionally implement fit() for learned encodings and decode() for reconstruction.

Attributes:

Name Type Description
model

The VSAModel instance defining the VSA algebra.

memory

The VSAMemory instance for accessing basis hypervectors.

Example

class MyEncoder(AbstractEncoder): ... def encode(self, data): ... # Custom encoding logic ... return self.memory["basis"] encoder = MyEncoder(model, memory) hv = encoder.encode(some_data)

Source code in vsax/encoders/base.py
class AbstractEncoder(ABC):
    """Abstract base class for encoding structured data into hypervectors.

    All encoders must implement the `encode()` method. Encoders can optionally
    implement `fit()` for learned encodings and `decode()` for reconstruction.

    Attributes:
        model: The VSAModel instance defining the VSA algebra.
        memory: The VSAMemory instance for accessing basis hypervectors.

    Example:
        >>> class MyEncoder(AbstractEncoder):
        ...     def encode(self, data):
        ...         # Custom encoding logic
        ...         return self.memory["basis"]
        >>> encoder = MyEncoder(model, memory)
        >>> hv = encoder.encode(some_data)
    """

    def __init__(self, model: VSAModel, memory: VSAMemory) -> None:
        """Initialize the encoder.

        Args:
            model: The VSAModel instance.
            memory: The VSAMemory instance with basis symbols.
        """
        self.model = model
        self.memory = memory

    @abstractmethod
    def encode(self, *args: Any, **kwargs: Any) -> AbstractHypervector:
        """Encode data into a hypervector.

        Args:
            *args: Positional arguments (encoder-specific).
            **kwargs: Keyword arguments (encoder-specific).

        Returns:
            The encoded hypervector.

        Raises:
            NotImplementedError: This is an abstract method.

        Note:
            Different encoders may have different signatures. See specific
            encoder documentation for details.
        """
        pass

    def fit(self, data: Any) -> None:
        """Optionally fit encoder parameters to data.

        This method is optional and can be used for learned encodings.
        By default, it does nothing.

        Args:
            data: The training data.
        """
        pass

Functions

__init__(model, memory)

Initialize the encoder.

Parameters:

Name Type Description Default
model VSAModel

The VSAModel instance.

required
memory VSAMemory

The VSAMemory instance with basis symbols.

required
Source code in vsax/encoders/base.py
def __init__(self, model: VSAModel, memory: VSAMemory) -> None:
    """Initialize the encoder.

    Args:
        model: The VSAModel instance.
        memory: The VSAMemory instance with basis symbols.
    """
    self.model = model
    self.memory = memory

encode(*args, **kwargs) abstractmethod

Encode data into a hypervector.

Parameters:

Name Type Description Default
*args Any

Positional arguments (encoder-specific).

()
**kwargs Any

Keyword arguments (encoder-specific).

{}

Returns:

Type Description
AbstractHypervector

The encoded hypervector.

Raises:

Type Description
NotImplementedError

This is an abstract method.

Note

Different encoders may have different signatures. See specific encoder documentation for details.

Source code in vsax/encoders/base.py
@abstractmethod
def encode(self, *args: Any, **kwargs: Any) -> AbstractHypervector:
    """Encode data into a hypervector.

    Args:
        *args: Positional arguments (encoder-specific).
        **kwargs: Keyword arguments (encoder-specific).

    Returns:
        The encoded hypervector.

    Raises:
        NotImplementedError: This is an abstract method.

    Note:
        Different encoders may have different signatures. See specific
        encoder documentation for details.
    """
    pass

fit(data)

Optionally fit encoder parameters to data.

This method is optional and can be used for learned encodings. By default, it does nothing.

Parameters:

Name Type Description Default
data Any

The training data.

required
Source code in vsax/encoders/base.py
def fit(self, data: Any) -> None:
    """Optionally fit encoder parameters to data.

    This method is optional and can be used for learned encodings.
    By default, it does nothing.

    Args:
        data: The training data.
    """
    pass

Core Encoders