2017-07-19 9 views
1

gensimパッケージからdoc2vecライブラリを実行しようとしています。モデルのためのGensim Doc2Vec巨大なファイルを生成する

model.estimate_memory() 

しかし、それは何も変更しませんでした:私の問題は、私はこの行を使用してみました(2.5 GB)私はトレーニングし、モデルを保存していたときにモデルファイルがかなり大きいことです。また、スペースを減らすためにmax_vocab_sizeを変更しようとしました。しかし運がなかった。誰かがこの問題について私を助けることができますか?

+0

ここには何も間違っていません。文書の埋め込みは膨大です。 –

+2

私はこの問題を解決できない問題ではなく、ライブラリがどのように使用されているか誤解しているため、このトピックを議論の対象外としています。これに対して2.5Gはすでに小さな側面にあります。 –

+0

私は異議を得ることはありません。誰かがプログラミングタスクのリソース要件を理解していないため、質問が生成されます。アルゴリズム/ライブラリの基本的な操作を説明することによって、誤解を解決することができ、基本的な目標を達成するための他のコーディングオプションがあります。これらは、十分に特定された質問に対する有益な答えを形成する。 – gojomo

答えて

1

Doc2Vecモデルは大きくすることができます。特に、使用されているすべてのワードベクトルは、1次元当たり4バイトを使用し、モデルの2つのレイヤーを掛けます。だから、20万語語彙と300次元モデルは、ベクトル配列自体のためだけに使用します。

200,000 vectors * 300 dimensions * 4 bytes/float * 2 layers = 480MB 

を(語彙情報を格納する辞書のための追加のオーバーヘッドがあります。)

任意のdocベクトルますdimnsionあたり4バイトも使用します。あなたは万人のdoc-タグ用のベクターを鍛えるのであれば、モデルは、doc-ベクトル配列のためだけに使用します。

1,000,000 vectors * 300 dimensions * 4 bytes/float = 2.4GB 

(あなたが「、DOC-ベクトルに名前を付けるために任意の文字列タグが使用している場合

読み込み時のメモリ使用量を少なくすると(ストアファイルのサイズも小さくなります)、小さな語彙を使用したり、doc-vecsの数を減らしたり、ベクトルサイズを小さくしたりすることができます。

特定の狭い目的にのみモデルを必要とする場合は、トレーニング後に投げ捨てることができる他の部分があるかもしれませんが、モデル内部/ソースコードの知識と特定のニーズが必要となります他の多くの通常の操作で壊れているモデル(エラーが発生する可能性が高いモデル)で発生します。

関連する問題