3

現在マルチプロセッシングで実装されているプログラムで spaCy を使用したいと考えています。具体的には、ProcessingPool4 つのサブプロセスを生成するために使用しています。これらのサブプロセスはオフになり、陽気なタスクを実行します。

spaCy (特に POS タグ付け用) を使用するには、 を呼び出す必要がありますがspacy.load('en')、これは高価な呼び出しです (約 10 秒かかります)。各サブプロセス内でこのオブジェクトをロードする場合、それらはすべて同じ場所から読み取っているため、約 40 秒かかります。これはうんざりするほど長いです。

しかし、ロードされているオブジェクトを共有する方法がわかりません。このオブジェクトはピクルできません。つまり、(私の知る限り):

  1. Pool.map呼び出しに渡すことはできません
  2. Managerインスタンスで保存および使用してプロセス間で共有することはできません

私に何ができる?

4

1 に答える 1