我正在使用自定义的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
答案 0 :(得分:1)
Estimator
API与图的构建紧密相关(每次调用train()
,evaluate()
等都会重建图)。因此,它在调用时明确禁用了急切执行。
您是否可以使用自己的训练循环或使用tf.keras.Model.fit()
而不是使用Estimator
API?