张量流自定义估算器中的急切执行
Eager execution in tensorflow custom estimators
我正在使用自定义 Estimator 逻辑重写我的代码,我需要启用即时执行以获得我需要的 metrics/predictions。但是,由于某种原因,启用急切执行似乎并没有成功。要重现,我可以使用位于 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
Estimator
API 与图形构造紧密相关(每次调用 train()
、evaluate()
等都会重建图形)。因此它在调用时明确禁用了急切执行。
您是否可以使用自己的训练循环或使用 tf.keras.Model.fit()
而不是使用 Estimator
API?
我正在使用自定义 Estimator 逻辑重写我的代码,我需要启用即时执行以获得我需要的 metrics/predictions。但是,由于某种原因,启用急切执行似乎并没有成功。要重现,我可以使用位于 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
Estimator
API 与图形构造紧密相关(每次调用 train()
、evaluate()
等都会重建图形)。因此它在调用时明确禁用了急切执行。
您是否可以使用自己的训练循环或使用 tf.keras.Model.fit()
而不是使用 Estimator
API?