渴望图兼容的相同代码解决方案可能吗?

时间:2018-11-08 18:04:22

标签: tensorflow

我正在尝试编写与图形兼容的代码。但是,关于如何执行此操作的在线信息很少,只是TensorFlow的website上的文字脚注。此外,他们所写的内容令人困惑,说:

  

为急切执行而编写的相同代码也将在图执行期间构建图。为此,只需在未启用急切执行的新Python会话中运行相同的代码即可。

这意味着可以使用相同的代码解决方案,其中唯一需要的更改是添加或删除tf.enable_eager_execution()

当前,我使用tf.keras定义模型,并使用tf.data定义输入管道。但是,许多急切的操作在图形中不起作用,反之亦然。

例如,我使用epochs来跟踪tf.train.Checkpoint()的数量。在急切模式下,还原后,我可以使用epochs.numpy()来访问它,以将其值分配给局部变量。但是,这不适用于图,由于在执行期间未定义值,因此将需要sess.run(epochs)

再次,为了急切地计算我的梯度,我需要使用某种形式的autograd,在我的情况下为tf.GradientTape()。这与图形不兼容,因为“ tf.GradientTape.gradients()不支持图形控制流。”

我看到tfe.py_func存在,但是再一次,这仅在未启用渴望时才起作用,因此无济于事。

当渴望和图形的许多方面似乎直接相互冲突时,我该如何制定相同的代码解决方案?

0 个答案:

没有答案