tensorflow - learning - Cómo crear manualmente un tf.Summary()
tensorboard open (3)
Necesitaba hacer muchas actualizaciones a la variable de resumen personalizada durante la capacitación, así que implementé la mía así:
Antes del ciclo:
writer = tf.summary.FileWriter(log_folder)
accuracy = None
accuracy_summary = tf.Summary()
accuracy_summary.value.add(tag=''accuracy'', simple_value=accuracy)
Dentro del ciclo:
if i%20000 == 0:
accuracy = get_accuracy()
accuracy_summary.value[0].simple_value = accuracy
writer.add_summary(accuracy_summary, i)
Supongo que los índices para value
están en el orden en que se agregaron las variables al resumen.
A menudo quiero registrar variables de python, a diferencia de tf tensores.
En los documentos dice que "puede pasar un tf.Summary
protocolo de tf.Summary
que tf.Summary
con sus propios datos", pero no hay documentos para el tf.Summary
y no pude encontrar la manera de usarlo.
¿Alguien sabe cómo crear un resumen escalar de esta manera?
Puede crear un objeto tf.Summary
en su programa Python y escribirlo en el mismo objeto tf.summary.FileWriter
que toma los resúmenes producidos por TensorFlow usando el método SummaryWriter.add_summary()
.
La clase tf.Summary
es un contenedor de buffer de protocolo Python para el buffer de protocolo de Summary
. Cada Summary
contiene una lista de tf.Summary.Value
protocolo tf.Summary.Value
, que tienen una etiqueta y un valor "simple" (escalar en coma flotante), una image , un histogram o un fragmento de audio . Por ejemplo, puede generar un resumen escalar de un objeto Python de la siguiente manera:
writer = tf.train.SummaryWriter(...)
value = 37.0
summary = tf.Summary(value=[
tf.Summary.Value(tag="summary_tag", simple_value=value),
])
writer.add_summary(summary)
Si desea registrar un valor de python, debe crear un marcador de posición que debe alimentarse al ejecutar el tf.Summary
op.
Aquí hay un código cortado
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})