私はこれを理解できないようです。私はscikit-learnで訓練されたモデルを.pklファイルに保存しました。それに基づいて予測を行うAPIを作成したいと思います。スクールモデルが公開されていないGunicorn/flask API
私は既に予測を行うコードを持っており、コンソール/ユニットテストからうまく動作します。予測を高速化するために、データ(何千もの画像パッチ)を分割し、joblib
/multiprocessing
を使用して負荷を分散しています。
multiprocessing
プロセス内で使用すると、scikit-learnがハングするので、JOBLIB_START_METHOD=forkserver
と設定しています。
私はflask
でこのコードを使ったAPIを手に入れました。フラスコのデベロッパーサーバーで実行するとうまくいきます。現在、flask
アプリをgunicorn
以内にホストしようとしていますが、まったく機能しません。
デフォルトのワーカーを使用すると、予測するときにエラーなしでハングするだけです。フォークサーバーのマルチプロセッシングを設定していない場合と同じです。私はこのようなgunicorn
を実行している:
JOBLIB_START_METHOD=forkserver gunicorn -w 2 -b 0.0.0.0:$PORT --timeout 3600 web.app:app
私もgevent
バックエンドを使用してみました。これは、実際に作業を行いますが、それは非常に遅いです、そしてそれは、これを出力します。
Multiprocessing backed parallel loops cannot be nested below threads, setting n_jobs=1
、これが実行されている複数のWeb労働者がありますような方法で動作するようになって上の任意のアイデアを、私はそれはケースだとは思いません(フラスコのデベロッパーサーバーで)joblib
/multiprocessing
をリクエストできるようになりましたか?ありがとう