class_docstr: TFWriter uses tensorflow file writers and summary operations to write out
  tfevent files containing scalar batch metrics.
code: def __init__(self) -> None:
      super().__init__()
      self.writer = EventFileWriter(
          logdir=str(tensorboard.get_base_path({})),
          filename_suffix=None,
      )
      self.createSummary = tf.Summary
  
      # _seen_summary_tags is vendored from TensorFlow: tensorflow/python/summary/writer/writer.py
      # This set contains tags of Summary Values that have been encountered
      # already. The motivation here is that the SummaryWriter only keeps the
      # metadata property (which is a SummaryMetadata proto) of the first Summary
      # Value encountered for each tag. The SummaryWriter strips away the
      # SummaryMetadata for all subsequent Summary Values with tags seen
      # previously. This saves space.
      self._seen_summary_tags: Set[str] = set()
  
file_path: determined/harness/determined/tensorboard/metric_writers/tensorflow.py
imports: import time
  from typing import Optional, Set, Union
  import numpy
  import tensorflow
  from packaging import version
  from tensorflow.core.framework import summary_pb2
  from tensorflow.core.util import event_pb2
  from tensorflow.python.summary.writer.event_file_writer import EventFileWriter
  from determined import tensorboard
label_desc: Use image node_id 1 to create a new TFWriter object from inherited base classes: tensorboard with example: obj = TFWriter()