horapy
1.0.0
[Página inicial] [Documento] [Exemplos] [Hora]
Ligação Python para a Hora Approximate Nearest Neighbor Search
Desempenho ⚡️
Suporte a vários índices
Hierarchical Navigable Small World Graph Index(HNSWIndex)
(detalhe)Satellite System Graph (SSGIndex)
(detalhe)Product Quantization Inverted File(PQIVFIndex)
(detalhe)Random Projection Tree(RPTIndex)
(LSH, WIP)BruteForce (BruteForceIndex)
(implementação ingênua com SIMD)Portátil
no_std
(WIP, parcial)Windows
, Linux
e OS X
IOS
e Android
(WIP)BLAS
Confiabilidade
Rust
protege todo o códigoRust
Suporte para múltiplas distâncias ?
Dot Product Distance
Euclidean Distance
Manhattan Distance
Cosine Similarity
Produtivo
por aws t2.medium (CPU: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz)
mais informações
pip install horapy
import numpy as np
from horapy import HNSWIndex
dimension = 50
n = 1000
# init index instance
index = HNSWIndex ( dimension , "usize" )
samples = np . float32 ( np . random . rand ( n , dimension ))
for i in range ( 0 , len ( samples )):
# add node
index . add ( np . float32 ( samples [ i ]), i )
index . build ( "euclidean" ) # build index
target = np . random . randint ( 0 , n )
# 410 in Hora ANNIndex <HNSWIndexUsize> (dimension: 50, dtype: usize, max_item: 1000000, n_neigh: 32, n_neigh0: 64, ef_build: 20, ef_search: 500, has_deletion: False)
# has neighbors: [410, 736, 65, 36, 631, 83, 111, 254, 990, 161]
print ( "{} in {} n has neighbors: {}" . format (
target , index , index . search ( samples [ target ], 10 ))) # search
Todo o repositório está sob licença Apache.