Beispiel #1
0
def _make_summary_writer(name, factory, **kwargs):
  resource = gen_summary_ops.summary_writer(shared_name=name)
  init_op_fn = lambda: factory(resource, **kwargs)
  # TODO(apassos): Consider doing this instead.
  # if not context.executing_eagerly():
  #   ops.get_default_session().run(init_op)
  ops.add_to_collection(_SUMMARY_WRITER_INIT_COLLECTION_NAME, init_op_fn())
  return SummaryWriter(resource, init_op_fn)
Beispiel #2
0
def _make_summary_writer(name, factory, **kwargs):
    resource = gen_summary_ops.summary_writer(shared_name=name)
    init_op_fn = lambda: factory(resource, **kwargs)
    # TODO(apassos): Consider doing this instead.
    # if not context.executing_eagerly():
    #   ops.get_default_session().run(init_op)
    ops.add_to_collection(_SUMMARY_WRITER_INIT_COLLECTION_NAME, init_op_fn())
    return SummaryWriter(resource, init_op_fn)
Beispiel #3
0
 def create_fn():
   # Use unique shared_name to prevent resource sharing in eager mode, but
   # otherwise use a fixed shared_name to allow SavedModel TF 1.x loading.
   if context.executing_eagerly():
     shared_name = context.anonymous_name()
   else:
     shared_name = ops.name_from_scope_name(scope)  # pylint: disable=protected-access
   return gen_summary_ops.summary_writer(
       shared_name=shared_name, name=name)
Beispiel #4
0
def _make_summary_writer(name, factory, **kwargs):
  resource = gen_summary_ops.summary_writer(shared_name=name)
  init_op_fn = lambda: factory(resource, **kwargs)
  init_op = init_op_fn()
  if not context.executing_eagerly():
    # TODO(apassos): Consider doing this instead.
    #   ops.get_default_session().run(init_op)
    global _SUMMARY_WRITER_INIT_OP
    key = ops.get_default_graph()._graph_key  # pylint: disable=protected-access
    _SUMMARY_WRITER_INIT_OP.setdefault(key, []).append(init_op)
  return SummaryWriter(resource, init_op_fn)
Beispiel #5
0
def _make_summary_writer(name, factory, **kwargs):
  resource = gen_summary_ops.summary_writer(shared_name=name)
  init_op_fn = lambda: factory(resource, **kwargs)
  init_op = init_op_fn()
  if not context.executing_eagerly():
    # TODO(apassos): Consider doing this instead.
    #   ops.get_default_session().run(init_op)
    global _SUMMARY_WRITER_INIT_OP
    key = ops.get_default_graph()._graph_key  # pylint: disable=protected-access
    _SUMMARY_WRITER_INIT_OP.setdefault(key, []).append(init_op)
  return SummaryWriter(resource, init_op_fn)
Beispiel #6
0
 def __init__(self, shared_name, init_op_fn, name=None):
     self._resource = gen_summary_ops.summary_writer(
         shared_name=shared_name, name=name)
     self._init_op_fn = init_op_fn
     self._init_op = init_op_fn(self._resource)
     self._closed = False
     if context.executing_eagerly():
         self._resource_deleter = resource_variable_ops.EagerResourceDeleter(
             handle=self._resource, handle_device="cpu:0")
     else:
         ops.add_to_collection(_SUMMARY_WRITER_INIT_COLLECTION_NAME,
                               self._init_op)
Beispiel #7
0
def _make_summary_writer(name, factory, **kwargs):
    resource = gen_summary_ops.summary_writer(shared_name=name)
    init_op_fn = lambda: factory(resource, **kwargs)
    init_op = init_op_fn()
    if not context.executing_eagerly():
        # TODO(apassos): Consider doing this instead.
        #   ops.get_default_session().run(init_op)
        ops.add_to_collection(_SUMMARY_WRITER_INIT_COLLECTION_NAME, init_op)
        # TODO(nickfelt): expose an actual op for this
        is_initialized_op = constant_op.constant(True)
        resources.register_resource(resource, init_op, is_initialized_op)
    return SummaryWriter(resource, init_op_fn)
 def  __init__(self, shared_name, init_op_fn, name=None, v2=False):
   self._resource = gen_summary_ops.summary_writer(
       shared_name=shared_name, name=name)
   # TODO(nickfelt): cache other constructed ops in graph mode
   self._init_op_fn = init_op_fn
   self._init_op = init_op_fn(self._resource)
   self._v2 = v2
   self._closed = False
   if context.executing_eagerly():
     self._resource_deleter = resource_variable_ops.EagerResourceDeleter(
         handle=self._resource, handle_device="cpu:0")
   else:
     ops.add_to_collection(_SUMMARY_WRITER_INIT_COLLECTION_NAME, self._init_op)
 def __init__(self, shared_name, init_op_fn, name=None, v2=False):
     self._resource = gen_summary_ops.summary_writer(
         shared_name=shared_name, name=name)
     # TODO(nickfelt): cache other constructed ops in graph mode
     self._init_op_fn = init_op_fn
     self._init_op = init_op_fn(self._resource)
     self._v2 = v2
     self._closed = False
     if context.executing_eagerly():
         self._resource_deleter = resource_variable_ops.EagerResourceDeleter(
             handle=self._resource, handle_device="cpu:0")
     else:
         global _SUMMARY_WRITER_INIT_OP
         key = ops.get_default_graph()._graph_key  # pylint: disable=protected-access
         _SUMMARY_WRITER_INIT_OP.setdefault(key, []).append(self._init_op)
Beispiel #10
0
def create_file_writer(logdir,
                       max_queue=None,
                       flush_millis=None,
                       filename_suffix=None,
                       name=None):
  """Creates a summary file writer in the current context under the given name.

  Args:
    logdir: a string, or None. If a string, creates a summary file writer
     which writes to the directory named by the string. If None, returns
     a mock object which acts like a summary writer but does nothing,
     useful to use as a context manager.
    max_queue: the largest number of summaries to keep in a queue; will
     flush once the queue gets bigger than this. Defaults to 10.
    flush_millis: the largest interval between flushes. Defaults to 120,000.
    filename_suffix: optional suffix for the event file name. Defaults to `.v2`.
    name: Shared name for this SummaryWriter resource stored to default
      Graph. Defaults to the provided logdir prefixed with `logdir:`. Note: if a
      summary writer resource with this shared name already exists, the returned
      SummaryWriter wraps that resource and the other arguments have no effect.

  Returns:
    Either a summary writer or an empty object which can be used as a
    summary writer.
  """
  if logdir is None:
    return _NoopSummaryWriter()
  logdir = str(logdir)
  with ops.device("cpu:0"):
    if max_queue is None:
      max_queue = constant_op.constant(10)
    if flush_millis is None:
      flush_millis = constant_op.constant(2 * 60 * 1000)
    if filename_suffix is None:
      filename_suffix = constant_op.constant(".v2")
    if name is None:
      name = "logdir:" + logdir
    resource = gen_summary_ops.summary_writer(shared_name=name)
    return _LegacyResourceSummaryWriter(
        resource=resource,
        init_op_fn=functools.partial(
            gen_summary_ops.create_summary_file_writer,
            logdir=logdir,
            max_queue=max_queue,
            flush_millis=flush_millis,
            filename_suffix=filename_suffix))
Beispiel #11
0
 def __init__(self,
              shared_name,
              init_op_fn,
              name=None,
              v2=False,
              metadata=None):
     self._resource = gen_summary_ops.summary_writer(
         shared_name=shared_name, name=name)
     # TODO(nickfelt): cache other constructed ops in graph mode
     self._init_op_fn = init_op_fn
     self._init_op = init_op_fn(self._resource)
     self._v2 = v2
     self._metadata = {} if metadata is None else metadata
     self._closed = False
     if context.executing_eagerly():
         self._resource_deleter = resource_variable_ops.EagerResourceDeleter(
             handle=self._resource, handle_device="cpu:0")
     else:
         ops.add_to_collection(_SUMMARY_WRITER_INIT_COLLECTION_NAME,
                               self._init_op)