解决keras+flask模型的重复调用出错ValueError: Tensor is not an element of this graph

 更新时间:2024年01月12日 08:48:56   作者:七彩吞天蟒  
这篇文章主要介绍了解决keras+flask模型的重复调用出错ValueError: Tensor is not an element of this graph问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

确认基调:这个问题不是大问题,看完本篇文章就能解决

1. 错误重现

ValueError: Tensor Tensor("dense_3/BiasAdd:0", shape=(?, 1), dtype=float32) is not an element of this graph.

2. 错误含义

表面含义:传入的张量[tensor]并不是这个图[graph]的元素。具体意义:就是说,当你进行模型预测的时候,传入的数据,和后台的图不匹配。

3. 解决方法

方法一

把keras的tensorflow的后端换成theano,具体操作不赘述

这个方法不推荐,因为并没有实际解决问题,而是逃避问题,而且有可能会出现一些新的问题。【嗯,我就出现了】

方法二

选择每次调用模型的时候,重新加载一下模型,也就是说把加载模型写在调用的函数里,这样模型就是个局部变量,每次调用每次加载。【如果还是报错】

那记得在模型预测结果后,在其代码追加一句:

ret = model.predict(x_test)
keras.backend.clear_session()

意思就是清理下session,这样每次调用都会加载一下模型,并且清除session

这个方法也不推荐,加载模型耗时耗力,而且清除了其他的session,有可能造成其他程序的崩溃

方法三

创建全局的model,创建全局的graph,调用的时候直接引用过来

像这样:

if __name__ == '__main__':
	graph = tf.get_default_graph()
	model = keras.models.load_model('./data/model/model.model')
	app.run(host='0.0.0.0', port=9090, debug=True)

但是这不算结束,关键的地方来了,在调用模型的时候,要引用一下全局的图才行

像这样:

with graph.as_default():
	prd = model.predict(x_test)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在Django中同时使用多个配置文件的方法

    在Django中同时使用多个配置文件的方法

    这篇文章主要介绍了在Django中同时使用多个配置文件的方法,Django是丰富多彩的Python web框架中人气最高的一个,需要的朋友可以参考下
    2015-07-07
  • python中virtualenvwrapper安装与使用

    python中virtualenvwrapper安装与使用

    本篇文章给大家介绍了python环境神器virtualenvwrapper安装与使用,对此有需要的朋友可以跟着操作一下。
    2018-05-05
  • 一文教你用python编写Dijkstra算法进行机器人路径规划

    一文教你用python编写Dijkstra算法进行机器人路径规划

    迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径,这篇文章主要给大家介绍了关于利用python编写Dijkstra算法进行机器人路径规划的相关资料,需要的朋友可以参考下
    2021-08-08
  • python:目标检测模型预测准确度计算方式(基于IoU)

    python:目标检测模型预测准确度计算方式(基于IoU)

    今天小编就为大家分享一篇python:目标检测模型预测准确度计算方式(基于IoU),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python matplotlib库绘图实战之绘制散点图

    python matplotlib库绘图实战之绘制散点图

    Python有着强大的绘图库 matplotlib,该库集成了大量的绘制函数,可以满足我们平时绝大多数的绘图要求,这篇文章主要给大家介绍了关于python matplotlib库绘图实战之绘制散点图的相关资料,需要的朋友可以参考下
    2022-07-07
  • 情人节快乐! python绘制漂亮玫瑰

    情人节快乐! python绘制漂亮玫瑰

    情人节快乐! 这篇文章主要教大家如何用python绘制漂亮玫瑰花,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • DataFrame.to_excel多次写入不同Sheet的实例

    DataFrame.to_excel多次写入不同Sheet的实例

    今天小编就为大家分享一篇DataFrame.to_excel多次写入不同Sheet的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python中return函数返回值实例用法

    Python中return函数返回值实例用法

    在本篇文章里小编给大家整理的是一篇关于Python中return函数返回值实例用法,有兴趣的朋友们可以学习下。
    2020-11-11
  • yolov5返回坐标的方法实例

    yolov5返回坐标的方法实例

    这篇文章主要给大家介绍了关于yolov5返回坐标的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-03-03
  • python回调函数中使用多线程的方法

    python回调函数中使用多线程的方法

    这篇文章主要介绍了python回调函数中使用多线程的方法,需要的朋友可以参考下
    2017-12-12

最新评论