Ejemplo n.º 1
0
    def testWriteEventInvalidType(self):
        class _Invalid(object):
            def __str__(self):
                return "Invalid"

        with self.assertRaisesRegex(TypeError, "Invalid"):
            _pywrap_events_writer.EventsWriter(b"foo").WriteEvent(_Invalid())
Ejemplo n.º 2
0
    def testWriteEvents(self):
        file_prefix = os.path.join(self.get_temp_dir(), "events")
        writer = _pywrap_events_writer.EventsWriter(
            compat.as_bytes(file_prefix))
        filename = compat.as_text(writer.FileName())
        event_written = event_pb2.Event(
            wall_time=123.45,
            step=67,
            summary=summary_pb2.Summary(value=[
                summary_pb2.Summary.Value(tag="foo", simple_value=89.0)
            ]))
        writer.WriteEvent(event_written)
        writer.Flush()
        writer.Close()

        with self.assertRaises(errors.NotFoundError):
            for r in tf_record.tf_record_iterator(filename + "DOES_NOT_EXIST"):
                self.assertTrue(False)

        reader = tf_record.tf_record_iterator(filename)
        event_read = event_pb2.Event()

        event_read.ParseFromString(next(reader))
        self.assertTrue(event_read.HasField("file_version"))

        event_read.ParseFromString(next(reader))
        # Second event
        self.assertProtoEquals(
            """
    wall_time: 123.45 step: 67
    summary { value { tag: 'foo' simple_value: 89.0 } }
    """, event_read)

        with self.assertRaises(StopIteration):
            next(reader)
Ejemplo n.º 3
0
def maybe_create_event_file(logdir):
  """Create an empty event file if not already exists.

  This event file indicates that we have a plugins/profile/ directory in the
  current logdir.

  Args:
    logdir: log directory.
  """
  for file_name in gfile.ListDirectory(logdir):
    if file_name.endswith(_EVENT_FILE_SUFFIX):
      return
  # TODO(b/127330388): Use summary_ops_v2.create_file_writer instead.
  event_writer = _pywrap_events_writer.EventsWriter(
      compat.as_bytes(os.path.join(logdir, 'events')))
  event_writer.InitWithSuffix(compat.as_bytes(_EVENT_FILE_SUFFIX))
    def __init__(self,
                 logdir,
                 max_queue=10,
                 flush_secs=120,
                 filename_suffix=None):
        """Creates a `EventFileWriter` and an event file to write to.

    On construction the summary writer creates a new event file in `logdir`.
    This event file will contain `Event` protocol buffers, which are written to
    disk via the add_event method.

    The other arguments to the constructor control the asynchronous writes to
    the event file:

    *  `flush_secs`: How often, in seconds, to flush the added summaries
       and events to disk.
    *  `max_queue`: Maximum number of summaries or events pending to be
       written to disk before one of the 'add' calls block.

    Args:
      logdir: A string. Directory where event file will be written.
      max_queue: Integer. Size of the queue for pending events and summaries.
      flush_secs: Number. How often, in seconds, to flush the
        pending events and summaries to disk.
      filename_suffix: A string. Every event file's name is suffixed with
        `filename_suffix`.
    """
        self._logdir = str(logdir)
        gfile.MakeDirs(self._logdir)
        self._max_queue = max_queue
        self._flush_secs = flush_secs
        self._flush_complete = threading.Event()
        self._flush_sentinel = object()
        self._close_sentinel = object()
        self._ev_writer = _pywrap_events_writer.EventsWriter(
            compat.as_bytes(os.path.join(self._logdir, "events")))
        if filename_suffix:
            self._ev_writer.InitWithSuffix(compat.as_bytes(filename_suffix))
        self._initialize()
        self._closed = False