Retrieval demo using ItemStore + CodebookΒΆ

Run (optional):

python -m examples.retrieval_demo

 9 from holovec.backends import get_backend
10 from holovec.models.fhrr import FHRRModel
11 from holovec.retrieval import Codebook, ItemStore
12 from holovec.utils.cleanup import ResonatorCleanup
13
14
15 def main():
16     backend = get_backend('numpy')
17     model = FHRRModel(dimension=512, backend=backend, seed=0)
18
19     # build a small codebook
20     items = {f"item{i}": model.random(seed=10 + i) for i in range(8)}
21     cb = Codebook(items, backend=backend)
22
23     # store and query
24     store = ItemStore(model, cleanup=ResonatorCleanup()).fit(cb)
25
26     q = items['item3']
27     print("Top-3 nearest:")
28     for lbl, sim in store.query(q, k=3):
29         print(f"  {lbl}: {sim:.3f}")
30
31     # factorize a composition of 3 items
32     comp = model.bind_multiple([items['item1'], items['item5'], items['item6']])
33     labels, sims = store.factorize(comp, n_factors=3, mode='soft', top_k=4, temperature=10.0)
34     print("Factorized labels:", labels)
35     print("Similarities:", [f"{s:.3f}" for s in sims])
36
37
38 if __name__ == "__main__":
39     main()

Gallery generated by Sphinx-Gallery