  
          timestamps, loss = self._to_numpy(data, is_live)
  
          if not is_live or (is_live and not self._data.get(session_id, None)):
              self._data[session_id] = dict(labels=labels,
                                            loss=zlib.compress(loss),
                                            loss_shape=loss.shape,
                                            timestamps=zlib.compress(timestamps),
                                            timestamps_shape=timestamps.shape)
          else:
 
</s> remove         if not data:
            logger.debug("No data to cache")
            return
 </s> add  </s> remove             msg = "Waiting for {}...".format(self.tabname)
 </s> add             msg = f"Waiting for {self.tabname}..." </s> remove             If Tensorflow is not found, or is not between versions 2.2 and 2.6
 </s> add             If Tensorflow is not found, or is not between versions 2.2 and 2.8 </s> remove                 self.stats["raw_{}".format(loss_name)] = loss
 </s> add                 self.stats[f"raw_{loss_name}"] = loss
            self._data[session_id] = dict(labels=self._loss_labels,
  
          timestamps, loss = self._to_numpy(data, is_live)
  
          if not is_live or (is_live and not self._data.get(session_id, None)):
            self._data[session_id] = dict(labels=self._loss_labels,
                                            loss=zlib.compress(loss),
                                            loss_shape=loss.shape,
                                            timestamps=zlib.compress(timestamps),
                                            timestamps_shape=timestamps.shape)
          else:
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/gui/analysis/event_reader.py