如何在Tensorboard中获得像丢失图一样的累积图(不是点)?

时间:2017-10-16 09:05:57

标签: tensorflow tensorboard

我希望在张量板(不是点...)中像连续图一样持续准确。

我使用:dnnclassifier modelbuild_estimatorinput_fntrainseval(就像在Tensorflow教程中一样)。

请帮帮我。

def build_estimator(model_dir):
    m = tf.estimator.DNNClassifier(
        model_dir=model_dir,
        feature_columns=deep_columns,
        n_classes=10,
        hidden_units=[512, 256],
        config=tf.contrib.learn.RunConfig(save_checkpoints_secs=1)
    )

    return m

def input_fn(data_file, num_epochs, shuffle):
    labels = data_file['RATING'].astype(int)

    return tf.estimator.inputs.pandas_input_fn(
        x=data_file,
        y=labels,
        batch_size=100,
        num_epochs=num_epochs,
        shuffle=shuffle,
        num_threads=5)

def trains_and_eval( train_data, test_data, train_steps ):
    model_dir = "./board/sample"

    m = build_estimator(model_dir)

    m.train( input_fn=input_fn( train_data, num_epochs=1, shuffle=True), steps=train_steps)

    results = m.evaluate( input_fn=input_fn(test_data, num_epochs=1, shuffle=False), steps=None)

    for key in sorted(results):
        print("%s: %s" % (key, results[key]))

enter image description here

1 个答案:

答案 0 :(得分:0)

"准确度中的每个数据点"致电m.evaluate()时会生成情节。由于您只需拨打m.evaluate()一次,因此该图表只包含一个点。

修改程序以多次调用m.evaluate()将导致连续的情节。例如,您可以围绕对m.train()m.evaluate()

的调用添加循环
for _ in range(10):
  m.train(input_fn=input_fn(train_data, num_epochs=1, shuffle=True),
          steps=train_steps)

  results = m.evaluate(input_fn=input_fn(test_data, num_epochs=1, shuffle=False),
                       steps=None)

最近添加的(在TensorFlow 1.4中)tf.estimator.train_and_evaluate()函数也可能有助于自动完成此过程。