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更新:

上面的解决方案有时程序还会报错。

建议:使用异步进程代替异步线程,便不会出现上述错误。

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