【Tensorflow】解决Inputs to eager execution function cannot be Keras symbolic tensors, but found [<tf.Te

简介: 文章讨论了在使用Tensorflow 2.3时遇到的一个错误:"Inputs to eager execution function cannot be Keras symbolic tensors...",这个问题通常与Tensorflow的eager execution(急切执行)模式有关,提供了三种解决这个问题的方法。

问题

环境

Python 3.8
Tensorflow 2.3

导入的包

from tensorflow.python.keras import *
from tensorflow.python.keras.layers import *

程序确定没有问题但是运行会报错Inputs to eager execution function cannot be Keras symbolic tensors, but found [<tf.Tensor ‘input_2:0’

解决

参考资料

根据TF 2.0文档,创建模型有两种方法,一种是通过面向对象的方法,另一种是使用keras功能api。尽管有一些示例在keras功能模型中调用了图层子类,但在keras功能api中没有调用模型子类的实例。

本人就是用keras的API搭建模型,tf 2.0中默认情况下会启用急切执行

(1)解决办法一
是换Tensorflow为2.0版本

创建一个新的conda环境

conda create -n tf2 python=3.6
conda activate tf tf2

安装tensorflow2.0版本

pip install tensorflow-gpu==2.0 -i https://pypi.douban.com/simple/

(2)解决办法二
只在tensorflow2.0成功,在tensorflow2.3不成功

import tensorflow as tf
tf.compat.v1.disable_eager_execution()

(2)解决办法三
在代码的中添加一行

tf.config.experimental_run_functions_eagerly(True)

以下内容来源参考资料

tf.config.experimental_run_functions_eagerly(True)的文档中,它说在调试和阅读功能API规范时很有用,并且它的意思是,如果编译由功能API构建的模型而没有任何错误,则可以使用该模型进行训练,不会出现任何错误。

目录
相关文章
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
将Keras训练好的.hdf5模型转换为TensorFlow的.pb模型,然后再转换为TensorRT支持的.uff格式,并提供了转换代码和测试步骤。
118 3
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
|
3月前
|
机器学习/深度学习 TensorFlow API
使用 TensorFlow 和 Keras 构建图像分类器
【10月更文挑战第2天】使用 TensorFlow 和 Keras 构建图像分类器
|
3月前
|
机器学习/深度学习 移动开发 TensorFlow
深度学习之格式转换笔记(四):Keras(.h5)模型转化为TensorFlow(.pb)模型
本文介绍了如何使用Python脚本将Keras模型转换为TensorFlow的.pb格式模型,包括加载模型、重命名输出节点和量化等步骤,以便在TensorFlow中进行部署和推理。
166 0
|
5月前
|
TensorFlow 算法框架/工具 Python
TensorFlow2 Eager Execution模式
【8月更文挑战第18天】TensorFlow2 Eager Execution模式。
60 9
|
5月前
解决微软云Azure Function运行报错-Value cannot be null. (Parameter ‘provider‘)
解决微软云Azure Function运行报错-Value cannot be null. (Parameter ‘provider‘)
102 4
|
5月前
|
机器学习/深度学习 API 算法框架/工具
【Tensorflow+keras】Keras API三种搭建神经网络的方式及以mnist举例实现
使用Keras API构建神经网络的三种方法:使用Sequential模型、使用函数式API以及通过继承Model类来自定义模型,并提供了基于MNIST数据集的示例代码。
71 12
|
5月前
|
机器学习/深度学习 API 算法框架/工具
【Tensorflow+keras】Keras API两种训练GAN网络的方式
使用Keras API以两种不同方式训练条件生成对抗网络(CGAN)的示例代码:一种是使用train_on_batch方法,另一种是使用tf.GradientTape进行自定义训练循环。
59 5
|
5月前
|
机器学习/深度学习 IDE API
【Tensorflow+keras】Keras 用Class类封装的模型如何调试call子函数的模型内部变量
该文章介绍了一种调试Keras中自定义Layer类的call方法的方法,通过直接调用call方法并传递输入参数来进行调试。
50 4
|
5月前
|
TensorFlow 算法框架/工具
【Tensorflow+Keras】用Tensorflow.keras的方法替代keras.layers.merge
在TensorFlow 2.0和Keras中替代旧版keras.layers.merge函数的方法,使用了新的层如add, multiply, concatenate, average, 和 dot来实现常见的层合并操作。
49 1
|
5月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【Tensorflow+keras】解决cuDNN launch failure : input shape ([32,2,8,8]) [[{{node sequential_1/batch_nor
在使用TensorFlow 2.0和Keras训练生成对抗网络(GAN)时,遇到了“cuDNN launch failure”错误,特别是在调用self.generator.predict方法时出现,输入形状为([32,2,8,8])。此问题可能源于输入数据形状与模型期望的形状不匹配或cuDNN版本不兼容。解决方案包括设置GPU内存增长、检查模型定义和输入数据形状、以及确保TensorFlow和cuDNN版本兼容。
63 1

热门文章

最新文章