Ejemplo n.º 1
0
class TensorBoardOutputFormat(KVWriter):
    """
    Dumps key/value pairs into TensorBoard's numeric format.
    """
    def __init__(self, dir):
        os.makedirs(dir, exist_ok=True)
        self.dir = dir
        self.step = 1
        prefix = 'events'
        path = osp.join(osp.abspath(dir), prefix)
        import tensorflow as tf
        from tensorflow.python import pywrap_tensorflow
        from tensorflow.core.util import event_pb2
        from tensorflow.python.util import compat
        from tensorflow.summary import FileWriter
        self.tf = tf
        self.event_pb2 = event_pb2
        self.pywrap_tensorflow = pywrap_tensorflow
        self.writer = pywrap_tensorflow.EventsWriter(compat.as_bytes(path))
        self.graph_summary_writer = FileWriter(
            osp.join(osp.abspath(dir), 'tb_graph'))

    def writekvs(self, kvs):
        def summary_val(k, v):
            kwargs = {'tag': k, 'simple_value': float(v)}
            return self.tf.Summary.Value(**kwargs)

        summary = self.tf.Summary(
            value=[summary_val(k, v) for k, v in kvs.items()])
        event = self.event_pb2.Event(wall_time=time.time(), summary=summary)
        event.step = self.step  # is there any reason why you'd want to specify the step?
        self.writer.WriteEvent(event)
        self.writer.Flush()
        self.step += 1

    def add_graph(self, graph):
        self.graph_summary_writer.add_graph(graph)

    def close(self):
        if self.writer:
            self.writer.Close()
            self.writer = None
Ejemplo n.º 2
0
def totb(g: TF_Graph):
    """ Export to TensorBoard """
    writer = FileWriter(get_log_dir("freezepb"))
    writer.add_graph(g)