Изменения

Перейти к: навигация, поиск
Нет описания правки
'''for''' level = mL to qL
hnsw.append({q, {}})
 
== Практическое использование ==
В библиотеке Hnswlib<ref>[https://github.com/nmslib/hnswlib Hnswlib]</ref> есть реализация иерархического маленького мира. Эта библиотека написана на C++, с биндингами на python. <br/>
Пример использования:
import hnswlib
import numpy as np
dim = 128
num_elements = 10000
# Создаём тестовые данные.
data = np.float32(np.random.random((num_elements, dim)))
data_labels = np.arange(num_elements)
# Создаём иерархический маленький мир в L2.
# Возможные метрики {{---}} l2, cosine, ip (L2, косинус угла между векторами, скалярное произведение).
p = hnswlib.Index(space = 'l2', dim = dim)
# Инициализируем структуру.
p.init_index(max_elements = num_elements, ef_construction = 200, M = 16)
# Добавляем данные (можно вызывать много раз).
p.add_items(data, data_labels)
# Настраиваем качество, выставляя ef:
p.set_ef(50) # ef должно быть > k
# Делаем запрос.
# k - количество юлижайших вершин
labels, distances = p.knn_query(data, k = 1)
== См. также ==
120
правок

Навигация