我想在封锁互联网的Kaggle笔记本环境中使用tf.estimator.DNNClassifier
训练模型。因此,我无法使用Tensorboard来监视进度。因此,相反,我想在标准输出中记录进度(类似于在Keras模型上调用fit
方法时),但是我无法使其正常工作。
到目前为止,我一直在尝试将日志记录级别设置为INFO
并将tf.estimator.RunConfig
实例传递给估计器。 RunConfig
有一个log_step_count_steps
属性,默认值为100,这似乎与我要查找的内容有关,但是它不起作用。这是代码的一部分:
import logging;
logging.getLogger().setLevel(logging.INFO)
tf.logging.set_verbosity(tf.logging.INFO)
config = tf.estimator.RunConfig()
classifier = tf.estimator.DNNClassifier(
feature_columns = feature_columns,
hidden_units = [128, 64],
n_classes = 2,
config = config
)
classifier.train(input_fn=train_input_fn)
我使用Tensorflow版本1.11.0-rc1
。
答案 0 :(得分:0)
您需要使用替换在RunConfig中设置所需的值。
config = tf.estimator.RunConfig().replace(keep_checkpoint_max = 5,
log_step_count_steps=20, save_checkpoints_steps=200)
classifier = tf.estimator.DNNClassifier(
feature_columns = feature_columns,
hidden_units = [128, 64],
n_classes = 2,
config = config
)
classifier.train(input_fn=train_input_fn)
上面的代码应该每20个步骤记录一次丢失。
答案 1 :(得分:0)
尝试了许多解决方案后,我最终发现问题中的所有代码都是必需的,例如将日志级别设置为INFO并将RunConfig
对象传递给DNNClassifier
,但是由于一个错误在Kaggle内核笔记本中,在训练分类器之前,我们首先需要记录任意内容以使Tensorflow日志在Kaggle中工作!例如:
logging.info('I am info')