gensimのmodel.trainでおかしなエラーが出た

その買うを、もっとハッピーに。|ハピタス

gensimを使ったtutorialを学習中におかしなエラーが出た。サイトの通りにコードを実行したのにもかかわらず、以下のような非常に長ったらしいエラーが吐き出された。

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.

tutorial通りにやっているのに何で!と思いながらも、ネットで調べてみたら、今のgensimバージョンでは、model.trainのパラメーターがいくつか必須になったことが判明した。そこで、エラーの指示通りにtotal_wordsを、len(model.wv.vocab)を使って調べた後に、アウトプットされた数字を入力してコードを走らせたら、またエラーが吐き出された。

ValueError: You must specify an explict epochs count. The usual value is epochs=model.epochs.

とりあえず、面倒くさいからephochs=1と入力してみた。

INFO : EPOCH 1 - PROGRESS: at 0.03% words, 30 words/s, in_qsize 0, out_qsize 0

何かアウトプットがおかしいので、もう一度詳しくネットで調べてみることにした。

total_examples=model.corpus_count, epochs=model.iter

のようにパラメーターを追加してやればいいことが分かったので、そのように入力してからプログラムを実行したら以下のような正常な出力になった。

INFO : EPOCH 1 - PROGRESS: at 14.00% examples, 22598 words/s, in_qsize 0, out_qsize 0

良いチュートリアルは古いチュートリアルが多く、古いチュートリアルはPython2で書かれてるものが多かったり、今回のように、モジュールの仕様が改変されていたりするので、落ち着いて機械学習の学習やpythonプログラミングの学習に専念できないのが悔やまれる。

参考サイトhttps://stackoverflow.com/

スポンサーリンク
スポンサーリンク