解决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)

总结

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

相关文章

  • 浅析python打包工具distutils、setuptools

    浅析python打包工具distutils、setuptools

    python包在开发中十分常见,一般的使用套路是所有的功能做一个python模块包,打包模块,然后发布,安装使用。这篇文章给大家介绍了python打包工具distutils、setuptools的相关知识,感兴趣的朋友一起看看吧
    2018-04-04
  • Python利用PsUtil实现实时监控系统状态

    Python利用PsUtil实现实时监控系统状态

    PSUtil是一个跨平台的Python库,用于检索有关正在运行的进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。本文就来用PsUtil实现实时监控系统状态,感兴趣的可以跟随小编一起学习一下
    2023-04-04
  • 浅谈python数据类型及其操作

    浅谈python数据类型及其操作

    今天带大家了解python数据类型的相关知识,文中介绍的非常详细,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • 跟老齐学Python之集合的关系

    跟老齐学Python之集合的关系

    前面一节讲述了集合的基本概念,注意,那里所涉及到的集合都是可原处修改的集合。还有一种集合,不能在原处修改。
    2014-09-09
  • Python实现XML文件解析的示例代码

    Python实现XML文件解析的示例代码

    本篇文章主要介绍了Python实现XML文件解析的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 一篇文章带你了解python迭代器和生成器

    一篇文章带你了解python迭代器和生成器

    这篇文章主要介绍了Python中的迭代器和生成器,涉及到Python中很多重要的特性,需要的朋友可以参考下,希望能够给你带来帮助
    2021-08-08
  • Python程序运行原理图文解析

    Python程序运行原理图文解析

    这篇文章主要介绍了Python程序运行原理图文解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 详解Django的CSRF认证实现

    详解Django的CSRF认证实现

    这篇文章主要介绍了详解Django的CSRF认证实现,详细的介绍了csrf原理和实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • python爬取股票最新数据并用excel绘制树状图的示例

    python爬取股票最新数据并用excel绘制树状图的示例

    这篇文章主要介绍了python爬取股票最新数据并用excel绘制树状图的示例,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • python使用pika库调用rabbitmq参数使用详情

    python使用pika库调用rabbitmq参数使用详情

    这篇文章主要介绍了python使用pika库调用rabbitmq参数使用详情,文章通过展开文章主题分享了三种方式,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08

最新评论