  
                  logger.debug("Compiling layer '%s': layer inputs: %s", layer.name, layer_inputs)
                  model = layer(layer_inputs)
              compiled_layers[layer.name] = model
              retval = KerasModel(model_inputs, model, name="{}_inference".format(saved_model.name))
          logger.debug("Compiled inference model '%s': %s", retval.name, retval)
          return retval
  
      def _get_filtered_structure(self):
          """ Obtain the structure of the inference model.
 
</s> remove         compiled_layers = dict()
 </s> add         compiled_layers = {} </s> remove         tag = "v{}.{}.{}".format(self._url_section, self._git_model_id, self._model_version)
        retval = "{}/{}/{}.zip".format(self._url_base, tag, self._model_full_name)
 </s> add         tag = f"v{self._url_section}.{self._git_model_id}.{self._model_version}"
        retval = f"{self._url_base}/{tag}/{self._model_full_name}.zip" </s> remove         self.images = dict()
 </s> add         self.images = {} </s> remove             zip_file = zipfile.ZipFile(self._model_zip_path, "r")
            self._write_model(zip_file)
 </s> add             with zipfile.ZipFile(self._model_zip_path, "r") as zip_file:
                self._write_model(zip_file) </s> remove             msg = ("There are multiple plugin types ('{}') stored in the model folder '{}'. This "
                   "is not supported.\nPlease split the model files into their own folders before "
                   "proceeding".format("', '".join(multiple_models), self.model_dir))
 </s> add             ptypes = "', '".join(multiple_models)
            msg = (f"There are multiple plugin types ('{ptypes}') stored in the model folder '"
                   f"{self.model_dir}'. This is not supported.\nPlease split the model files into "
                   "their own folders before proceeding")
            retval = KerasModel(model_inputs, model, name=f"{saved_model.name}_inference")
  
                  logger.debug("Compiling layer '%s': layer inputs: %s", layer.name, layer_inputs)
                  model = layer(layer_inputs)
              compiled_layers[layer.name] = model
            retval = KerasModel(model_inputs, model, name=f"{saved_model.name}_inference")
          logger.debug("Compiled inference model '%s': %s", retval.name, retval)
          return retval
  
      def _get_filtered_structure(self):
          """ Obtain the structure of the inference model.
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