不推荐使用TensorFlow r1.3监视器:
" 2016年12月5日&#34 ;, "不推荐使用监视器。请使用tf.train.SessionRunHook。") 和Estimator.train(input_fn,hooks,..)仅适用于钩子。
如何使用钩子实现验证监视器的功能?
答案 0 :(得分:3)
编辑:正如评论中指出的那样,感觉这是正确的事情,但会在每次评估后重新初始化权重,使它几乎没用......
我最终能够使用train_and_evaluate
函数监控我的验证错误(我理解你正在尝试做的事情)。您必须使用的EvalSpec
对象具有参数start_delay_secs
和throttle_secs
来定义错误的频率(或您在估算工具中定义的任何内容EVAL
模式)将被计算。
我的代码看起来有点像
classifier = tf.estimator.Estimator(
model_fn=model_fn,
model_dir=model_dir,
params=params)
train_spec = tf.estimator.TrainSpec(
input_fn = input_fn,
)
eval_spec = tf.estimator.EvalSpec(
input_fn = valid_input_fn,
throttle_secs=120,
start_delay_secs=120,
)
tf.estimator.train_and_evaluate(
classifier,
train_spec,
eval_spec
)
答案 1 :(得分:2)
我一直在使用SummarySaverHook
而不是监视器。他们不是强大的"然而,培训材料尚未更新,其中包含有关如何完全复制Monitor功能的说明。
以下是我如何使用它:
summary_hook = tf.train.SummarySaverHook(
save_steps=SAVE_EVERY_N_STEPS,
output_dir='./tmp/rnnStats',
scaffold=tf.train.Scaffold(),
summary_op=tf.summary.merge_all())
print("Classifier.train")
classifier.train(input_fn=train_input_fn, steps=1000, hooks=[summary_hook])