간단한 gensim doc2vec 코드를 실행하다가 다음과 같은 에러 메시지가 발생했다.
"You must specify either total_examples or total_words, for proper job parameters updation"
ValueError: You must specify either total_examples or total_words, for proper job parameters updationand progress calculations. The usual value is total_examples=model.corpus_count.
# 사전 구축
doc_vectorizer = doc2vec.Doc2Vec(size=300, alpha=0.025, min_alpha=0.025, seed=1234)
doc_vectorizer.build_vocab(tagged_train_docs)
# Train document vectors!
for epoch in range(10):
doc_vectorizer.train(tagged_train_docs)
doc_vectorizer.alpha -= 0.002 # decrease the learning rate
doc_vectorizer.min_alpha = doc_vectorizer.alpha # fix the learning rate, no decay
코드 중에서도 doc_vectorizer.train 부분에서 total_examples 등의 추가 인자가 없어서 발생하는 에러인 것으로 보인다. 에러가 발생한 gensim 의 버전은 3.4.0 이다. 버전업 되면서 인자나 사용법이 변경된 것 같다.
구글에서 검색하여 보니, gensin github의 issue 에 비슷한 이슈 글타래가 검색되었고, 다음과 같은 수정사항을 따라하여 문제가 해결됐다.
https://github.com/RaRe-Technologies/gensim/issues/1956#issuecomment-371020349
@Keramatfar this is not a problem that your data in Persian, please share all.csv
file (this needed for reproducing your error).
I already see several mistakes (looks like "old" approach")
model = gensim.models.Doc2Vec(size=300, window=10, min_count=5, workers=11,alpha=0.025, min_alpha=0.025) # use fixed learning rate
model.build_vocab(it)
for epoch in range(10):
model.train(it, epochs=model.iter, total_examples=model.corpus_count)
model.alpha -= 0.002 # decrease the learning rate
model.min_alpha = model.alpha # fix the learning rate, no deca
model.train(it)
should be
model = gensim.models.Doc2Vec(size=300, window=10, min_count=5, workers=11,alpha=0.025, min_alpha=0.025, iter=20)
model.build_vocab(it)
model.train(it, epochs=model.iter, total_examples=model.corpus_count)
'프로그래밍 > AI:ML:DL' 카테고리의 다른 글
[TENSORFLOW] cpu버전 tensorflow 1.6 이상에서 DLL 초기화 루틴을 실행할 수 없습니다 에러. (4) | 2018.06.05 |
---|---|
[NLP] Word2Vec 튜토리얼 - 스킵-그램 모델 (1) | 2018.04.18 |
[KERAS] Live Loss Plot (0) | 2018.03.28 |
[TensorFlow] tensorflow 1.6.0 No module named '_pywrap_tensorflow_internal' 에러 (1) | 2018.03.22 |
[번역] 이동 중앙값 분해를 통한 비정상 탐지 Dectect Anomaly with Moving Median Decomposition (0) | 2018.03.12 |