40 votes

Comment créer manuellement un tf.Summary ()

Je veux souvent enregistrer des variables python - contrairement aux tenseurs tf.

Dans les documents, il est dit que "vous pouvez passer un tampon de protocole tf.Summary que vous remplissez avec vos propres données" mais il n'y a pas de documents pour tf.Summary et je ne pouvais pas comprendre comment utiliser il.

Tout le monde sait comment créer un résumé scalaire de cette façon?

60voto

mrry Points 1

Vous pouvez créer un tf.Summary objet dans votre programme en Python et l'écrire dans le même tf.summary.FileWriter objet qui prend votre TensorFlow-produit des résumés à l'aide de l' SummaryWriter.add_summary() méthode.

L' tf.Summary classe est un Python de tampon protocole wrapper pour l' Summary de tampon protocole. Chaque Summary contient une liste d' tf.Summary.Value tampons de protocole, qui ont chacun une balise et un soit un "simple" (virgule flottante scalaire) de la valeur, une image, un histogrammeou un extrait audio. Par exemple, vous pouvez générer un scalaire résumé à partir d'un objet Python comme suit:

writer = tf.train.SummaryWriter(...)
value = 37.0
summary = tf.Summary(value=[
    tf.Summary.Value(tag="summary_tag", simple_value=value), 
])
writer.add_summary(summary)

6voto

nessuno Points 12786

Si vous souhaitez enregistrer une valeur python, vous devez créer un espace réservé qui doit être alimenté lors de l'exécution de l'op tf.Summary .

Voici un code coupé

 value_ = tf.placeholder(tf.float32, [])
summary_op = tf.scalar_summary("value_log", value_)
my_python_variable = 10
# define everything else you need...
# ...
with tf.Session() as sess:
    for i in range(0, 10):
        sess.run(summary_op, feed_dict={value_: my_python_variable*i})
 

3voto

KalenGi Points 618

J'ai dû faire de nombreuses mises à jour de la variable de résumé personnalisé pendant la formation, j'ai donc implémenté la mienne comme suit:

Avant la boucle:

 writer = tf.summary.FileWriter(log_folder)
accuracy = None
accuracy_summary = tf.Summary()
accuracy_summary.value.add(tag='accuracy', simple_value=accuracy)
 

À l'intérieur de la boucle:

 if i%20000 == 0:
    accuracy = get_accuracy()
    accuracy_summary.value[0].simple_value = accuracy
    writer.add_summary(accuracy_summary, i)
 

Je suppose que les indices de value sont dans l'ordre dans lequel les variables ont été ajoutées au résumé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X