Memory Module

The jax_hdc.memory module provides content-addressable memory structures.

SparseDistributedMemory

class jax_hdc.memory.SparseDistributedMemory(locations: Array, contents: Array, dimensions: int, radius: float)[source]

Sparse Distributed Memory (SDM) for content-addressable storage.

locations: Array
contents: Array
dimensions: int
radius: float
static create(num_locations: int, dimensions: int, radius: float = 0.0, key: Array | None = None) SparseDistributedMemory[source]
write(address: Array, value: Array) SparseDistributedMemory[source]
read(address: Array) Array[source]
__init__(locations: Array, contents: Array, dimensions: int, radius: float) None

HopfieldMemory

class jax_hdc.memory.HopfieldMemory(patterns: Array, dimensions: int, beta: float = 1.0)[source]

Modern Hopfield network for associative memory.

patterns: Array
dimensions: int
beta: float = 1.0
static create(dimensions: int, beta: float = 1.0) HopfieldMemory[source]
add(pattern: Array) HopfieldMemory[source]
retrieve(query: Array) Array[source]
__init__(patterns: Array, dimensions: int, beta: float = 1.0) None