gensim doc2vec дает неопределенный результат
Я использую модель Doc2Vec в библиотеке Python Gensim.
Каждый раз, когда я передаю модели одни и те же данные предложений и устанавливаю параметр:seed для Doc2Vec в фиксированное число, модель дает разные векторы после построения модели.
Для целей тестирования мне нужен определенный результат каждый раз, когда я давал неизменные входные данные. Я много искал и не нашел способа сохранить результат Генсума без изменений.
Что-то не так в том, как я это использую? спасибо за ответ заранее.
Вот мой код:
from gensim.models.doc2vec import Doc2Vec
model = Doc2Vec(sentences, dm=1, dm_concat=1, size=100, window=5, hs=0, min_count=10, seed=64)
result = model.docvecs
1 ответ
Doc2Vec
Алгоритм использует случайность как при инициализации, так и при обучении, а эффективное многопоточное обучение вводит больше случайности, потому что партии по всем потокам муллипа не обязательно будут обучаться в одном и том же порядке от запуска к запуску.
Если модель тренируется хорошо, дрожание результатов от прогона к прогону не должно быть большим, и качество последующих оценок не должно сильно различаться. Если качество результатов сильно различается, вероятно, существуют другие проблемы с применением алгоритма к вашим данным или обучению.
Отдельно: вы почти наверняка не хотите использовать не по умолчанию dm_concat=1
Режим. Это приводит к гораздо большей, гораздо более медленной для обучения модели, и нет никаких явных публичных примеров того, как она стоит этих дополнительных затрат. (Я бы попробовал это, только если бы у меня был хороший исходный результат от более простых режимов, большого количества данных и времени.)