Flask框架与TensorFlow不兼容的问题
因为主线程是子线程的关系,以及flask使用了gevent异步,导致在其他线程没有主线程里的模型,最终导致识别报错。
解决方法
解决的方法也很简单
第一种:
取消代码中的gevent
# from gevent import monkey;
# monkey.patch_all()
还有 启动时候取消gevent
gunicorn -w ${WORKER} -t 100 -k gevent -b 0.0.0.0:${PORT} server:app
gunicorn -w ${WORKER} -t 100 -b 0.0.0.0:${PORT} server:app # 去掉gevent
就可以了
第二种:
在load_model 之后 加上
model._make_predict_function()
参见:https://github.com/keras-team/keras/issues/6462
这段代码即可。
搞定!