J'avais l'habitude de gérer le modèle d'apprentissage automatique avec le cornichon de base, mais pour Annoy, l'erreur suivante se produit lors de l'enregistrement avec le pickle.
can't pickle annoy.Annoy objects
Pour le moment, cherchons sur Google et voyons le problème du hit.
https://github.com/spotify/annoy/issues/367
Apparemment. ..
Si vous regardez correctement l 'Exemple de code, vous pouvez voir que la méthode de chargement et la méthode de sauvegarde ont été préparées.
Donc, selon cet exemple de code
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') #sauvegarder
# ...
u = AnnoyIndex(f, 'angular')
u.load('test.ann') # super fast, will just mmap the file #Lis
print(u.get_nns_by_item(0, 1000)) # will find the 1000 nearest neighbors
Cela semble correct si vous le réglez sur.
Recommended Posts