Das Modell des maschinellen Lernens wurde im Wesentlichen von pickle verwaltet, aber für Annoy tritt beim Speichern mit pickle der folgende Fehler auf.
can't pickle annoy.Annoy objects
Lassen Sie uns vorerst googeln und das Hit-Problem sehen.
https://github.com/spotify/annoy/issues/367
anscheinend. ..
Wenn Sie sich den Beispielcode richtig ansehen, können Sie sehen, dass die Lademethode und die Speichermethode vorbereitet wurden.
Also nach diesem Beispielcode
from annoy import AnnoyIndex
import random
f = 40
t = AnnoyIndex(f, 'angular') # Length of item vector that will be indexed
for i in range(1000):
v = [random.gauss(0, 1) for z in range(f)]
t.add_item(i, v)
t.build(10) # 10 trees
t.save('test.ann') #sparen
# ...
u = AnnoyIndex(f, 'angular')
u.load('test.ann') # super fast, will just mmap the file #Lesen
print(u.get_nns_by_item(0, 1000)) # will find the 1000 nearest neighbors
Es scheint in Ordnung zu sein, wenn Sie es einstellen.
Recommended Posts