2017-03-28 84 views
5

पर एकाधिक रनों का औसत कैसे प्रदर्शित करें tensorflow पर कई अलग-अलग रनों का औसत प्रदर्शित करने का कोई तरीका है? मैं उन्हें केवल उसी ग्राफ पर देख सकता हूं (विभिन्न रनों का मार्ग भेजकर), लेकिन मैं ग्राफtensorboard

उत्तर

0

पर उनका औसत देखना चाहता हूं कृपया इस पर प्रगति देखने के लिए issue 376 का पालन करें। यह पिछले महीने कुछ प्रगति के साथ एक सक्रिय फीचर अनुरोध है, लेकिन अभी तक, आप जो चाहते हैं उसे करने का कोई तरीका नहीं है। फिर भी।

0

जैसा कि @ डीजीए ने उल्लेख किया है कि यह अभी तक लागू नहीं हुआ है। यहां कुछ कोड है जो स्केलर tensorflow सारांश मानों को गठबंधन करने के लिए EventAccumulator का उपयोग करता है। इसे अन्य सारांश प्रकारों को समायोजित करने के लिए बढ़ाया जा सकता है।

dpath 
├── 1 
│   └── events.out.tfevents.1518552132.Alexs-MacBook-Pro-2.local 
├── 11 
│   └── events.out.tfevents.1518552180.Alexs-MacBook-Pro-2.local 
├── 21 
│   └── events.out.tfevents.1518552224.Alexs-MacBook-Pro-2.local 
├── 31 
│   └── events.out.tfevents.1518552264.Alexs-MacBook-Pro-2.local 
└── 41 
   └── events.out.tfevents.1518552304.Alexs-MacBook-Pro-2.local 
:

import os 
from collections import defaultdict 

import numpy as np 
import tensorflow as tf 
from tensorboard.backend.event_processing.event_accumulator import EventAccumulator 


def tabulate_events(dpath): 

    summary_iterators = [EventAccumulator(os.path.join(dpath, dname)).Reload() for dname in os.listdir(dpath)] 

    tags = summary_iterators[0].Tags()['scalars'] 

    for it in summary_iterators: 
     assert it.Tags()['scalars'] == tags 

    out = defaultdict(list) 

    for tag in tags: 
     for events in zip(*[acc.Scalars(tag) for acc in summary_iterators]): 
      assert len(set(e.step for e in events)) == 1 

      out[tag].append([e.value for e in events]) 

    return out 


def write_combined_events(dpath, d_combined, dname='combined'): 

    fpath = os.path.join(dpath, dname) 
    writer = tf.summary.FileWriter(fpath) 

    tags, values = zip(*d_combined.items()) 

    timestep_mean = np.array(values).mean(axis=-1) 

    for tag, means in zip(tags, timestep_mean): 
     for i, mean in enumerate(means): 
      summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=mean)]) 
      writer.add_summary(summary, global_step=i) 

     writer.flush() 

dpath = '/path/to/root/directory' 

d = tabulate_events(dpath) 

write_combined_events(dpath, d) 

यह समाधान निम्नलिखित की तरह एक निर्देशिका संरचना मान लिया गया है

संबंधित मुद्दे