          logger.debug("Enabling TensorBoard Logging")
  
          logger.debug("Setting up TensorBoard Logging")
          log_dir = os.path.join(str(self._model.model_dir),
                                 "{}_logs".format(self._model.name),
                                 "session_{}".format(self._model.state.session_id))
          tensorboard = tf.keras.callbacks.TensorBoard(log_dir=log_dir,
                                                       histogram_freq=0,  # Must be 0 or hangs
                                                       write_graph=get_backend() != "amd",
                                                       write_images=False,
                                                       update_freq="batch",
 
</s> remove         retval = dict()
 </s> add         retval = {} </s> remove         self._stats = dict()
 </s> add         self._stats = {} </s> remove         # loss length of unique should be 3:
        # - decoder_both, 1, 2
        # - docoder_a, decoder_b, 1
        split_output = len(np.unique(model_outputs[..., :2])) != 3
 </s> add  </s> remove         feeds = dict()
        figures = dict()
        headers = dict()
 </s> add         feeds = {}
        figures = {}
        headers = {}
                               f"{self._model.name}_logs",
                               f"session_{self._model.state.session_id}")
          logger.debug("Enabling TensorBoard Logging")
  
          logger.debug("Setting up TensorBoard Logging")
          log_dir = os.path.join(str(self._model.model_dir),
                               f"{self._model.name}_logs",
                               f"session_{self._model.state.session_id}")
                               f"{self._model.name}_logs",
                               f"session_{self._model.state.session_id}")
          tensorboard = tf.keras.callbacks.TensorBoard(log_dir=log_dir,
                                                       histogram_freq=0,  # Must be 0 or hangs
                                                       write_graph=get_backend() != "amd",
                                                       write_images=False,
                                                       update_freq="batch",
keep keep keep keep replace replace keep keep keep keep keep
 Update code to support Tensorflow versions up to 2.8 (#1213)

* Update maximum tf version in setup + requirements

* - bump max version of tf version in launcher
- standardise tf version check

* update keras get_custom_objects  for tf>2.6

* bugfix: force black text in GUI file dialogs (linux)

* dssim loss - Move to stock tf.ssim function

* Update optimizer imports for compatibility

* fix logging for tf2.8

* Fix GUI graphing for TF2.8

* update tests

* bump requirements.txt versions

* Remove limit on nvidia-ml-py

* Graphing bugfixes
  - Prevent live graph from displaying if data not yet available

* bugfix: Live graph. Collect loss labels correctly

* fix: live graph - swallow inconsistent loss errors

* Bugfix: Prevent live graph from clearing during training

* Fix graphing for AMD 
plugins/train/trainer/_base.py