Как сохранить модель gensim doc2vec

после обучения модели я использую infer_vector () для успешного получения вектора. но после того, как я сохраню модель и снова загрузю, ошибка появляется следующим образом:

print "infer:", model.infer_vector(sents[0]).tolist()
File "/Users/zhangweimin/anaconda/lib/python2.7/site-packages/gensim/models/doc2vec.py", line 752, in infer_vector
    doctag_vectors=doctag_vectors, doctag_locks=doctag_locks)
File "gensim/models/doc2vec_inner.pyx", line 426, in gensim.models.doc2vec_inner.train_document_dm (./gensim/models/doc2vec_inner.c:5401)
TypeError: object of type 'NoneType' has no len()

весь код:

model = train_d2v(labeled_docs, model_file, word_file, 3)

# OK
print "before infer:", model.infer_vector(sents[0]).tolist()

model = Doc2Vec.load(model_file)

print "sents[0]:", sents[0]
print "type:", type(model)
print "infer:", model.infer_vector(sents[0]).tolist() #ERROR`

person Zafedom    schedule 18.06.2017    source источник
comment
Какой у вас код для сохранения модели?   -  person cs95    schedule 18.06.2017
comment
Что делает train_d2v()? Вы используете самую последнюю версию gensim   -  person gojomo    schedule 18.06.2017
comment
спасибо, версия моего gensim - 1.0.0. Я печатаю gensim .__ version__ get it. и я использую model.save () для сохранения модели.   -  person Zafedom    schedule 19.06.2017
comment
def train_d2v (docs, model_file, word_file, epoch_cnt = 10, if_shuffle = True, learn_rate = 0,025, dec_lr = 0,002): model = Doc2Vec (alpha = learn_rate, size = 100, window = 8, min_count = 5, worker = 4) log_info (построить словарь ...) model.build_vocab (docs) для эпохи в диапазоне (epoch_cnt): model.train (docs) model.alpha - = dec_lr model.min_alpha = model.alpha # исправить скорость обучения, модель без распада .save (model_file) возвращает модель   -  person Zafedom    schedule 19.06.2017
comment
Возможно, лучше всего отредактировать вопрос, чтобы добавить информацию, чтобы форматирование было правильным. Что печатают предыдущие строки вашего кода перед отображением ошибки?   -  person gojomo    schedule 19.06.2017
comment
Спасибо. Когда я обновляю gensim до версии 2.1.0, он работает и правильно сохраняет модель. Старая версия 1.0.0. Большое тебе спасибо.   -  person Zafedom    schedule 20.06.2017


Ответы (1)


Согласно комментариям выше, использование более новой версии gensim (2.1.0) решило проблему.

person gojomo    schedule 20.06.2017