          """
          self._test_for_tf_version()
          self._test_for_gui()
          cmd = os.path.basename(sys.argv[0])
          src = "tools.{}".format(self._command.lower()) if cmd == "tools.py" else "scripts"
          mod = ".".join((src, self._command.lower()))
          module = import_module(mod)
          script = getattr(module, self._command.title())
          return script
  
 
</s> remove         retval = dict()
 </s> add         retval = {} </s> remove         retval = dict()
 </s> add         retval = {} </s> remove         samples = list()
 </s> add         samples = [] </s> remove             predictions = [preds["{0}_{0}".format(side)],
                           preds["{}_{}".format(other_side, side)]]
 </s> add             predictions = [preds[f"{side}_{side}"],
                           preds[f"{other_side}_{side}"]] </s> remove             self._previewtrain = dict()
 </s> add             self._previewtrain = {}
        src = f"tools.{self._command.lower()}" if cmd == "tools.py" else "scripts"
          """
          self._test_for_tf_version()
          self._test_for_gui()
          cmd = os.path.basename(sys.argv[0])
        src = f"tools.{self._command.lower()}" if cmd == "tools.py" else "scripts"
          mod = ".".join((src, self._command.lower()))
          module = import_module(mod)
          script = getattr(module, self._command.title())
          return script
  
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 
lib/cli/launcher.py