TensorFlow RuntimeError:“尝试在不构建函数的情况下捕获EagerTensor”

问题描述

我正在尝试在Python中构建神经网络来解决PDE,因此,我不得不编写自定义训练步骤。我的训练功能如下:

...
tf.enable_eager_execution()

class PDENet:

     ...
  
     def train_step():
          input = self.input
          
          with tf.GradientTape() as tape,tf.Session() as sess:
               tape.watch(input)
               
               output = self.model(input)
               self.loss = self.pde_loss(output) # (network does not use training data)
               
          grad = tape.gradient(self.loss,self.model.trainable_weights)
          self.optimizer.apply_gradients([(grad,self.model)])

     ...

由于硬件原因,我别无选择,只能使用tensorflow == 1.12.0和keras == 2.2.4。
运行此代码时,出现“ RuntimeError:尝试捕获EagerTensor而不构建函数”。我已经看过其他文章了,但是所有答案都说更新tensorflow / keras,我不能这样做,请使用已经完成的“ tf.enable_eager_execution()”和“ tf.disable_v2_behavior()”在旧版本的tensorflow中不存在。有什么我可以解决的问题吗?该错误使我认为tensorflow要我添加@tf.function,但该功能似乎在tensorflow 1中也不存在。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...