keras模型在Django中採用異步線程調用時報錯 Tensor is not an element of this graph.的解決方案

報錯內容:

Typelrror: Cannot interpret feed_dict key as Tensor: Tensor Tensor (Placeholder:0", shape=(4, 80), dtype-float32) is not an element of this graph.

詳情請看圖片

 

報錯位置在load_model()這裏。

原因:不明,可能是keras模型加載、預測和python的多線程存在玄學衝突。

解決方案

# 在regressor = load_model(model_path)後面加一行:
regressor.predict(np.zeros((1,4,4)))  

# 這裏就是進行一次模型預測的測試,原因不明,但能解決問題,這裏也不需要接受什麼返回值。
# 注意zeros的shape要與你原本model進行predict的輸入參數的shape一致。

感謝:https://zhuanlan.zhihu.com/p/27101000。博主下面有很多評論可以看看,但是我試遍了所有人的方法,就上面那個好用,不過其他方法也有人成功,可能是我程序問題。

 

20191201更新:

上面的解決方案有時程序還會報錯。

建議:使用異步進程代替異步線程,便不會出現上述錯誤。

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