Регистрация тренировок и проверка потерь в тензорной доске

Я пытаюсь научиться использовать тензор потока и тензор. У меня есть тестовый проект на основеMNIST учебник по нейронным сетям.

В моем коде я создаю узел, который вычисляет долю цифр в наборе данных, которые правильно классифицированы, например:

correct = tf.nn.in_top_k(self._logits, labels, 1)
correct = tf.to_float(correct)
accuracy = tf.reduce_mean(correct)

Вот,self._logitsявляется частью вывода графа, иlabels это заполнитель, который содержит правильные метки.

Теперь, что я хотел бы сделать, это оценить точность как обучающего набора, так и проверочного набора в процессе обучения. Я могу сделать это, запустив узел точности дважды, с разными feed_dicts:

train_acc = tf.run(accuracy, feed_dict={images : training_set.images, labels : training_set.labels})
valid_acc = tf.run(accuracy, feed_dict={images : validation_set.images, labels : validation_set.labels})

Это работает как задумано. Я могу напечатать значения, и я вижу, что первоначально, обе точности будут оба увеличены, и в конечном счете точность проверки сгладится, в то время как точность обучения продолжает увеличиваться.

Тем не менее, я также хотел бы получить графики этих значений в тензорной доске, и я не могу понять, как это сделать. Если я просто добавлюscalar_summary вaccuracyзарегистрированные значения не будут различать обучающий набор и проверочный набор.

Я также попытался создать два одинаковыхaccuracy узлы с разными именами и один на обучающем наборе и один на проверочном наборе. Затем я добавляюscalar_summary к каждому из этих узлов. Это дает мне два графика в тензорной доске, но вместо одного графика, показывающего точность обучающего набора, и одного, показывающего точность проверочного набора, они оба показывают идентичные значения, которые не соответствуют ни одному из тех, которые напечатаны на терминале.

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