2016-11-21 17 views
9

2 ayırt edici özeti grubum var. Her harman başına bir tane toplanır, her biri bir kere toplanır. Bu iki grupta özetleri ayrı ayrı toplamak için merge_all_summaries(key='???')'u nasıl kullanabilirim? Bunu elle yapmak her zaman bir seçenek ama daha iyi bir yol var gibi görünüyor. ben işe gerektiğini düşünüyorum nasılTensorflow'da çeşitli özet koleksiyonlar nasıl kullanılır?

İllüstrasyon: çözüldü

 # once per batch 
     tf.scalar_summary("loss", graph.loss) 
     tf.scalar_summary("batch_acc", batch_accuracy) 
     # once per epoch 
     gradients = tf.gradients(graph.loss, [W, D]) 
     tf.histogram_summary("embedding/W", W, collections='per_epoch') 
     tf.histogram_summary("embedding/D", D, collections='per_epoch') 

     tf.merge_all_summaries()    # -> (MergeSummary...) :) 
     tf.merge_all_summaries(key='per_epoch') # -> NONE    :(
+0

Bu soruyu önce buldum, ancak özetler için ayırt edici olmayan iki grup aradı. Bu Yaklaşım https://stackoverflow.com/questions/42418029/unable-to-use-summary-merge-in-tensorboard-for-separate-training-and-evaluation biraz farklı kullanım durumu için biraz daha kolay çalışır. Sadece özetlerin isimlerini kullanabilirsiniz. – Maikefer

cevap

15

Sorun. Bir özetin collections parametresinin bir liste olması gerekiyordu. Çözüm:

# once per batch 
    tf.scalar_summary("loss", graph.loss) 
    tf.scalar_summary("batch_acc", batch_accuracy) 
    # once per epoch 
    tf.histogram_summary("embedding/W", W, collections=['per_epoch']) 
    tf.histogram_summary("embedding/D", D, collections=['per_epoch']) 

    tf.merge_all_summaries()    # -> (MergeSummary...) :) 
    tf.merge_all_summaries(key='per_epoch') # -> (MergeSummary...) :) 

Düzen. Sözdizimsel değişiklik TF: