Как показать кривую потерь обучающего набора и проверочного набора одновременно с использованием обычного оценщика? - PullRequest
0 голосов
/ 21 октября 2018

недавно я использовал custom_estimator.py для построения модели.Для того, чтобы очистить изменения значения потерь в обучающем наборе и проверочном наборе.Мне нужно знать, что, как показать кривую потери обучения и проверки, установленные одновременно.Я пытался использовать train_and_evaluate API оценщика, и я получил следующую картину.loss

Как видно, результатом оценки является точка, но я хочу линию, подобную кривой потерь в тренировочном наборе.Так же, как на картинке, как показано ниже.loss-2

Когда я использую оценщик, я называю обучение и валидацию следующим образом:

train_input_fn=tf.estimator.inputs.numpy_input_fn(
                x={"x":img_t},
                y=lbl_t,
                batch_size=100,
                num_epochs=None,
                shuffle=True)
              cla.train(
                imput_fn=train_input_fn,
                steps=17000,
                hooks=[logging_hook])

            #Obtain the hole batch of validation images
            img_v,lbl_v=sess.run([img_val,lbl_val])

            #Enter the inputs to the model for validation
            val_input_fn=tf.estimator.inputs.numpy_input_fn(
                x={"x":img_v},
                y=lbl_v,
                num_epochs=1,
                shuffle=False)
            val_results=cla.evaluate(input_fn=val_input_fn)

и регистрируюсь так:

#Calculate the accuracy........................
accuracy=tf.metrics.accuracy(labels=labels,predictions=predictions["classes"])
metrics={"accuracy":accuracy}
tf.summary.scalar("accuracy",accuracy[1])
#.............................................

#Training.....................................
if mode==tf.estimator.ModeKeys.TRAIN:
    optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.001)
    train_op=optimizer.minimize(loss=loss,global_step=tf.train.get_global_step())
    return tf.estimator.EstimatorSpec(mode=mode,loss=loss,train_op=train_op)
#.............................................

#Validation....................................
if mode==tf.estimator.ModeKeys.EVAL:
    return tf.estimator.EstimatorSpec(mode=mode,loss=loss,eval_metric_ops=metrics)

Когда я тренируюсь, я не знаю, как зарегистрировать потерю проверки и показать ее в виде кривой, как на рисунке, я был бы признателен за вашу помощь

...