You need to sign in or sign up before continuing.
Commit b5b22a85 authored by Maciej Jaśkowski's avatar Maciej Jaśkowski Committed by Yuxin Wu

Add option to write multiple tensorboard event files. (#707)

* Add option to write multiple tensorboard event files.

* rename and add docs
parent edc0bfd2
...@@ -206,11 +206,13 @@ class TFEventWriter(TrainingMonitor): ...@@ -206,11 +206,13 @@ class TFEventWriter(TrainingMonitor):
""" """
Write summaries to TensorFlow event file. Write summaries to TensorFlow event file.
""" """
def __init__(self, logdir=None, max_queue=10, flush_secs=120): def __init__(self, logdir=None, max_queue=10, flush_secs=120, split_files=False):
""" """
Args: Args:
Same as in :class:`tf.summary.FileWriter`. logdir: ``logger.get_logger_dir()`` by default.
logdir will be ``logger.get_logger_dir()`` by default. max_queue, flush_secs: Same as in :class:`tf.summary.FileWriter`.
split_files: if True, split events to multiple files rather than
append to a single file. Useful on certain filesystems where append is expensive.
""" """
if logdir is None: if logdir is None:
logdir = logger.get_logger_dir() logdir = logger.get_logger_dir()
...@@ -218,6 +220,7 @@ class TFEventWriter(TrainingMonitor): ...@@ -218,6 +220,7 @@ class TFEventWriter(TrainingMonitor):
self._logdir = logdir self._logdir = logdir
self._max_queue = max_queue self._max_queue = max_queue
self._flush_secs = flush_secs self._flush_secs = flush_secs
self._split_files = split_files
def __new__(cls, logdir=None, max_queue=10, flush_secs=120): def __new__(cls, logdir=None, max_queue=10, flush_secs=120):
if logdir is None: if logdir is None:
...@@ -242,6 +245,9 @@ class TFEventWriter(TrainingMonitor): ...@@ -242,6 +245,9 @@ class TFEventWriter(TrainingMonitor):
def _trigger(self): # flush every epoch def _trigger(self): # flush every epoch
self._writer.flush() self._writer.flush()
if self._split_files:
self._writer.close()
self._writer.reopen() # open new file
def _after_train(self): def _after_train(self):
self._writer.close() self._writer.close()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment