Tensor(*** shape=(?, 1, ?, 5693), dtype=float32) is not an element of this graph.

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
這段代碼即可。
搞定!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章