現在マルチプロセッシングで実装されているプログラムで spaCy を使用したいと考えています。具体的には、ProcessingPool
4 つのサブプロセスを生成するために使用しています。これらのサブプロセスはオフになり、陽気なタスクを実行します。
spaCy (特に POS タグ付け用) を使用するには、 を呼び出す必要がありますがspacy.load('en')
、これは高価な呼び出しです (約 10 秒かかります)。各サブプロセス内でこのオブジェクトをロードする場合、それらはすべて同じ場所から読み取っているため、約 40 秒かかります。これはうんざりするほど長いです。
しかし、ロードされているオブジェクトを共有する方法がわかりません。このオブジェクトはピクルできません。つまり、(私の知る限り):
Pool.map
呼び出しに渡すことはできませんManager
インスタンスで保存および使用してプロセス間で共有することはできません
私に何ができる?