              return
          seen = {name: 0 for name in set(self._model.output_names)}
          new_names = []
          for name in self._model.output_names:
              new_names.append("{}_{}".format(name, seen[name]))
              seen[name] += 1
          logger.debug("Output names rewritten: (old: %s, new: %s)",
                       self._model.output_names, new_names)
          self._model.output_names = new_names
  
 
</s> remove             if name not in existing.keys():
 </s> add             if name not in existing: </s> remove             self._previewtrain = dict()
 </s> add             self._previewtrain = {} </s> remove         msg += " {}".format(additional_info)
 </s> add         msg += f" {additional_info}" </s> remove         with open(cudnn_checkfile, "r") as ofile:
 </s> add         with open(cudnn_checkfile, "r", encoding="utf8") as ofile: </s> remove                                                  else "_{}".format(idx))
 </s> add                                                  else f"_{idx}")
            new_names.append(f"{name}_{seen[name]}")
              return
          seen = {name: 0 for name in set(self._model.output_names)}
          new_names = []
          for name in self._model.output_names:
            new_names.append(f"{name}_{seen[name]}")
              seen[name] += 1
          logger.debug("Output names rewritten: (old: %s, new: %s)",
                       self._model.output_names, new_names)
          self._model.output_names = new_names
  
keep keep keep keep 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/model/_base.py