TypeError: Cannot interpret feed_dict key as Tensor: Tensor Tensor("Placeholder:0", shape=(3, 3, 3, 32), dtype=float32) is not an element of this graph.
⚡插播一条老家自产的糖心苹果,多个品种,欢迎选购!有问题随时私信我⚡:
🍎🍎来自雪域高原的馈赠——海拔2000米的大凉山高原生态糖心苹果🍎🍎
https://blog.youkuaiyun.com/qq_15969343/article/details/126107252
1.问题背景
Flask是一个用Python编写的Web应用程序框架。Armin Ronacher带领一个名为Pocco的Python爱好者团队开发了Flask。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。两者都是Pocco项目。
Flask也被称为“microframework” ,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
Flask是一个轻量级WSGI web应用程序框架。它的设计目的是让入门变得简单快捷,能够扩展到复杂的应用程序,现在已经成为最流行的Python web应用程序框架之一。
Flask提供编码建议,但不强制执行任何依赖项或项目布局。由开发人员选择他们想要使用的工具和库。社区提供了许多扩展,使添加新功能变得容易。
-------------引自Flask官网
TensorFlow就更不用说了,只要涉及人工智能相关的应用,就一定知道TensorFlow,它是一个端到端开源机器学习平台,拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够轻松地构建和部署由机器学习提供支持的应用。
TensorFlow最初是由谷歌机器智能研究组内的谷歌大脑团队的研究人员和工程师开发的,用于进行机器学习和深度神经网络研究。该系统具有足够的通用性,可以应用于各种其他领域。
TensorFlow提供稳定的Python和C++ API,以及其他语言的兼容API。
最近炼丹的效果比较好,就准备使用Flask部署TensorFlow应用到服务器上,对外提供服务,但是在多次重复调用后,出现如下错误:
TypeError: Cannot interpret feed_dict key as Tensor: Tensor Tensor("Placeholder:0", shape=(3, 3, 3, 32), dtype=float32) is not an element of this graph.
[2019-08-20 10:50:49,807] ERROR in app: Exception on / [POST]
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1040, in _run
subfeed, allow_tensor=True, allow_operation=False)
File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 3339, in as_graph_element
return self._as_graph_element_locked(obj, allow_tensor, allow_operation)
File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 3418, in _as_graph_element_locked
raise ValueError("Tensor %s is not an element of this graph." % obj)
ValueError: Tensor Tensor("Placeholder:0", shape=(3, 3, 3, 32), dtype=float32) is not an element of this graph.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\flask\app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "C:\ProgramData\Anaconda3\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\ProgramData\Anaconda3\lib\site-packages\flask\app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\ProgramData\Anaconda3\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\ProgramData\Anaconda3\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "C:\ProgramData\Anaconda3\lib\site-packages\flask\app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "D:/Python/dogcat/service_test.py", line 95, in upload_file
model = load_model('my_models/Xception-03-0.0553-0.9825-0.0324-0.9900.h5')
File "D:/Python/dogcat\keras\models.py", line 246, in load_model
topology.load_weights_from_hdf5_group(f['model_weights'], model.layers)
File "D:/Python/dogcat\keras\engine\topology.py", line 3189, in load_weights_from_hdf5_group
K.batch_set_value(weight_value_tuples)
File "D:/Python/dogcat\keras\backend\tensorflow_backend.py", line 2370, in batch_set_value
get_session().run(assign_ops, feed_dict=feed_dict)
File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 877, in run
run_metadata_ptr)
File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1043, in _run
'Cannot interpret feed_dict key as Tensor: ' + e.args[0])
TypeError: Cannot interpret feed_dict key as Tensor: Tensor Tensor("Placeholder:0", shape=(3, 3, 3, 32), dtype=float32) is not an element of this graph.
2.解决方法
from keras.backend import clear_session
# 销毁当前TF图并创建一个新的TF图,避免旧模型/图层的混乱。
clear_session()