tutorial online guide example python tensorflow tensorboard

python - online - No se puede usar summary.merge en tensorboard para resúmenes de capacitación y evaluación por separado



tensorflow guide (1)

Estoy tratando de usar tensor para ver el aprendizaje de una red neuronal convolucional. Me está yendo bien con la función tf.summary.merge_all para crear un resumen combinado. Sin embargo, me gustaría tener un seguimiento de la precisión y la pérdida tanto para el entrenamiento como para los datos de prueba. Esta publicación es útil: entrenamiento de registro y pérdida de validación en tensor .

Para facilitar el manejo, me gustaría fusionar mis resúmenes en dos resúmenes fusionados, uno para capacitación y otro para validación. (Voy a agregar más cosas al final, como pesos de imágenes, etc.) Intenté seguir la descripción de tensorboard tf .summary.merge . No puedo hacer que funcione y no puedo encontrar ningún ejemplo de trabajo que me ayude a entender dónde me estoy equivocando.

with tf.name_scope(''accuracy''): correct_prediction = tf.equal(tf.argmax(y_logits, 1), tf.argmax(y, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, ''float'')) tf.summary.scalar(''accuracy'', accuracy) tf.summary.scalar(''train_accuracy'', accuracy) with tf.name_scope(''Cost''): cross_entropy = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits(logits=y_logits, labels=y)) opt = tf.train.AdamOptimizer() optimizer = opt.minimize(cross_entropy) grads = opt.compute_gradients(cross_entropy, [b_fc_loc2]) tf.summary.scalar(''cost'', cross_entropy) tf.summary.scalar(''train_cost'', cross_entropy) with tf.Session() as sess: writer = tf.summary.FileWriter(''./logs/mnistlogs/1f'', sess.graph) sess.run(tf.global_variables_initializer()) merged = tf.summary.merge([cost, accuracy])

Esto produce el siguiente error:

InvalidArgumentError (vea arriba para traceback): No se pudo analizar una de las entradas de resumen [[Node: Merge / MergeSummary = MergeSummary [N = 2, _device = "/ job: localhost / replica: 0 / task: 0 / cpu: 0" ] (Merge / MergeSummary / inputs_0, Merge / MergeSummary / inputs_1)]]

Me gustaría saber por qué esto no funciona, y cómo puedo encontrar una solución, se agradecen todos los ejemplos de trabajo.


Me lo imaginé. Necesito dar los nombres de los resúmenes antes de fusionarme. El siguiente código resuelve el problema:

with tf.name_scope(''Cost''): cross_entropy = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits(logits=y_logits, labels=y)) opt = tf.train.AdamOptimizer(learning_rate=0.000003) optimizer = opt.minimize(cross_entropy) grads = opt.compute_gradients(cross_entropy, [b_fc_loc2]) cost_sum = tf.summary.scalar(''val_cost'', cross_entropy) training_cost_sum = tf.summary.scalar(''train_cost'', cross_entropy) with tf.name_scope(''accuracy''): correct_prediction = tf.equal(tf.argmax(y_logits, 1), tf.argmax(y, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, ''float'')) train_accuracy = accuracy accuracy_sum = tf.summary.scalar(''val_accuracy'', accuracy) training_accuracy_sum = tf.summary.scalar(''train_accuracy'', accuracy) with tf.Session() as sess: writer = tf.summary.FileWriter(''./logs/{}/{}''.format(session_name, run_num), sess.graph) sess.run(tf.global_variables_initializer()) train_merged = tf.summary.merge([training_accuracy_sum, training_cost_sum])