La journalisation de formation et de validation de la perte dans tensorboard

Je suis en train d'apprendre à utiliser tensorflow et tensorboard. J'ai un projet de test basé sur le MNIST neural net tutoriel.

Dans mon code, je construis un nœud qui calcule la fraction de chiffres dans un ensemble de données qui sont correctement classés, comme ceci:

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

Ici, self._logitsest l'inférence à la partie du graphe, et labels est un espace réservé qui contient les étiquettes correctes.

Maintenant, ce que je voudrais faire est d'évaluer l'exactitude pour à la fois l'ensemble de la formation et de l'ensemble de validation que la formation produit. Je peux le faire en exécutant l'exactitude nœud à deux reprises, avec différents 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})

Cela fonctionne comme prévu. Je peux imprimer les valeurs, et je vois qu'au départ, les deux la précision augmente, et, finalement, la validation de l'exactitude de la aplatir alors que la formation de la précision croissante.

Cependant, je tiens également à obtenir des graphiques de ces valeurs dans tensorboard, et je ne peux pas comprendre comment le faire. Si j'ajoute simplement un scalar_summary à accuracy, les valeurs enregistrés ne fera pas de distinction entre l'ensemble d'apprentissage et l'ensemble de validation.

J'ai aussi essayé de créer deux identiques accuracy nœuds avec des noms différents et l'exécution de l'une sur l'ensemble de la formation et de l'un sur l'ensemble de validation. J'ajoute ensuite un scalar_summary pour chacun de ces nœuds. Cela ne me donner deux graphiques de tensorboard, mais au lieu d'un graphique montrant le jeu de la formation de l'exactitude et de l'un montrant l'ensemble de validation de la précision, ils sont tous deux montrant des valeurs identiques qui ne correspondent à aucun de ceux imprimés sur le terminal.

Je suis probablement l'incompréhension comment résoudre ce problème. Quelle est la méthode recommandée séparément de la connexion la sortie d'un nœud unique pour les différentes entrées?

InformationsquelleAutor user3468216 | 2015-12-26