问题描述
我正在尝试在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 (将#修改为@)