[英]Gunicorn/flask API to expose an sklearn model not working
我似乎无法弄清楚这一点。 我有一个使用scikit-learn训练的模型,保存到.pkl文件,我想制作一个基于它的预测API。
我已经有了进行预测的代码,它可以从控制台/单元测试中运行良好。 为了加快预测,我正在分割数据(数千个图像补丁)并使用joblib
/ multiprocessing
扩展负载。
我正在设置JOBLIB_START_METHOD=forkserver
因为如果在multiprocessing
处理过程中使用scikit-learn挂起。
我已经使用这个代码完成了使用flask
的API,并且当使用flask的dev服务器运行时,它工作得很好。 现在我正试图在gunicorn
flask
托管flask
应用程序,它根本不起作用。
如果我使用默认工作程序,那么它在尝试预测时只会挂起而没有错误,就像我没有设置'forkserver'多处理一样。 我正在像这样运行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
那么,任何关于让多个网络工作者运行的方法(我不认为这是烧瓶的开发服务器的情况)和一个能够利用joblib
/ multiprocessing
的请求的joblib
? 谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.