在Tensorflow自定义估算器中急于执行

时间:2018-07-31 15:26:02

标签: python tensorflow tensorflow-estimator

我正在使用自定义的Estimator逻辑重写代码,并且需要启用急切的执行才能获取所需的指标/预测。但是,似乎由于某些原因而无法启用渴望执行。为了进行复制,我可以使用位于https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/learn/iris.py的示例并打印一些照片:

...
import tensorflow as tf
tf.enable_eager_execution()
...
def my_model(features, labels, mode):
  print("IS EAGER? (my_model) - {}".format(tf.executing_eagerly()))
...
print("IS EAGER? - {}".format(tf.executing_eagerly()))
classifier = tf.estimator.Estimator(model_fn=my_model)

运行脚本时会导致以下结果:

IS EAGER? - True
INFO:tensorflow:Using default config.
...
INFO:tensorflow:Calling model_fn.
IS EAGER? (my_model) - False
INFO:tensorflow:Done calling model_fn.

如何使我的模型迅速执行?我正在使用tensorflow 1.9.0

1 个答案:

答案 0 :(得分:1)

Estimator API与图的构建紧密相关(每次调用train()evaluate()等都会重建图)。因此,它在调用时明确禁用了急切执行。

您是否可以使用自己的训练循环或使用tf.keras.Model.fit()而不是使用Estimator API?