3

Python2 で doc2vec モデルをトレーニングしましたが、それを Python3 で使用したいと考えています。

Python 3 でロードしようとすると、次のようになります。

Doc2Vec.load('my_doc2vec.pkl')

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 0: ordinal not in range(128)

これは、次のようにして解決しようとしたピクルの互換性の問題に関連しているようです。

with open('my_doc2vec.pkl', 'rb') as inf:
    data = pickle.load(inf)
data.save('my_doc2vec_python3.pkl')

Gensimは、名前を変更した他のファイルも保存したので、呼び出し時に見つけることができます

de = Doc2Vec.load('my_doc2vec_python3.pkl')

load() は UnicodeDecodeError で失敗しませんが、推論後に意味のない結果が得られます。

このモデルを使用して派生データを作成したため、Python 3 で Gensim を使用して簡単に再トレーニングすることはできません。そのため、長く複雑なパイプラインを再実行する必要があります。

doc2vec モデルを Python 3 と互換性を持たせるにはどうすればよいですか?

4

1 に答える 1