首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TensorBoard:为每个步骤绘制“评估损失”图表

TensorBoard:为每个步骤绘制“评估损失”图表
EN

Stack Overflow用户
提问于 2018-06-22 14:44:06
回答 3查看 1.3K关注 0票数 0

我在用TensorFlow Estimator训练CNN。在TensorBoard上进行可视化时,我看到每个步骤的训练损失值都被跟踪。然而,评估损失只显示了一次(即只有一个数据点)。我想看看每一步的损失值的图表。

下面是我的代码片段:

代码语言:javascript
复制
model = tf.estimator.Estimator(model_fn, model_dir='./model')

input_fn = tf.estimator.inputs.numpy_input_fn(
    x={'images': dev['train_images']}, y = dev['train_labels'],
    batch_size=batch_size, num_epochs=10, shuffle=True)

t = model.train(input_fn, steps=num_steps)

input_fn = tf.estimator.inputs.numpy_input_fn(
    x={'images': dev['test_images']}, y = dev['test_labels'],
    batch_size=batch_size, shuffle=False)
e = model.evaluate(input_fn, steps=num_steps)

整个代码都可以在here中找到。

我应该怎么做才能看到所有步骤的评估损失?

EN

回答 3

Stack Overflow用户

发布于 2018-06-29 00:12:32

你需要使用估计器的train_and_evaluate方法。您可以定期评估您的模型(每隔几秒钟,您需要将值放入throttle_secs选项中)。下面是示例代码

代码语言:javascript
复制
train_spec = tf.estimator.TrainSpec(input_fn=lambda: my_input_fn_train(X_train, y_train), hooks=[logging_hook_1], max_steps=MAX_TRAIN_STEPS)

eval_spec = tf.estimator.EvalSpec(input_fn=lambda: my_input_fn_test(X_dev, y_dev), hooks=[logging_hook_1], throttle_secs=EVALUATION_THROTTLE_SECONDS, steps=EVALUATION_STEPS)

tf.estimator.train_and_evaluate(myestimator, train_spec, eval_spec)
票数 1
EN

Stack Overflow用户

发布于 2018-09-20 02:35:42

我遇到了同样的问题,我的解决方案是修改run_config并将其传递给估计器。啊,真灵。run_config = tf.estimator.RunConfig(save_checkpoints_steps = 1000)

票数 0
EN

Stack Overflow用户

发布于 2019-04-18 22:01:55

您可以在需要定义何时开始运行评估start_delay_secs和最小延迟:throttle_secs的地方使用tf.estimator.EvalSpec

仅当有新检查点可用时,才会进行评估。因此,您需要使用config = tf.estimator.RunConfig(save_checkpoints_steps = 100))定期创建检查点

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50982119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档