class_docstr: Context manager that generates a trace event in the profiler.
  
  A trace event will start when entering the context, and stop and save the
  result to the profiler when exiting the context. Open TensorBoard Profile tab
  and choose trace viewer to view the trace event in the timeline.
  
  Trace events are created only when the profiler is enabled. More information
  on how to use the profiler can be found at
  https://tensorflow.org/guide/profiler
  
  Example usage:
  ```python
  tf.profiler.experimental.start('logdir')
  for step in range(num_steps):
    # Creates a trace event for each training step with the step number.
    with tf.profiler.experimental.Trace("Train", step_num=step, _r=1):
      train_fn()
  tf.profiler.experimental.stop()
  ```
docstr: Sets metadata in this trace event.
  
  Args:
    **kwargs: metadata in key-value pairs.
  
  This method enables setting metadata in a trace event after it is
  created.
  
  Example usage:
  
  ```python
  
    def call(function):
      with tf.profiler.experimental.Trace("call",
           function_name=function.name) as tm:
        binary, in_cache = jit_compile(function)
        tm.set_metadata(in_cache=in_cache)
        execute(binary)
  
  ```
  In this example, we want to trace how much time spent on
  calling a function, which includes compilation and execution.
  The compilation can be either getting a cached copy of the
  binary or actually generating the binary, which is indicated
  by the boolean "in_cache" returned by jit_compile(). We need
  to use set_metadata() to pass in_cache because we did not know
  the in_cache value when the trace was created (and we cannot
  create the trace after jit_compile(), because we want
  to measure the entire duration of call()).
code: def set_metadata(self, **kwargs):
      """Sets metadata in this trace event.
  
      Args:
        **kwargs: metadata in key-value pairs.
  
      This method enables setting metadata in a trace event after it is
      created.
  
      Example usage:
  
      ```python
  
        def call(function):
          with tf.profiler.experimental.Trace("call",
               function_name=function.name) as tm:
            binary, in_cache = jit_compile(function)
            tm.set_metadata(in_cache=in_cache)
            execute(binary)
  
      ```
      In this example, we want to trace how much time spent on
      calling a function, which includes compilation and execution.
      The compilation can be either getting a cached copy of the
      binary or actually generating the binary, which is indicated
      by the boolean "in_cache" returned by jit_compile(). We need
      to use set_metadata() to pass in_cache because we did not know
      the in_cache value when the trace was created (and we cannot
      create the trace after jit_compile(), because we want
      to measure the entire duration of call()).
      """
      if self._traceme and kwargs:
          self._traceme.SetMetadata(**kwargs)
  
file_path: tensorflow/tensorflow/python/profiler/trace.py
imports: import functools
  from tensorflow.python.profiler.internal import _pywrap_traceme
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 3 for calling the Trace obj's underlying member method code with example usage: obj.set_metadata() without return types