          """
          logger.debug("Calculating totals rate")
          batchsizes = _SESSION.batch_sizes
          total_timestamps = _SESSION.get_timestamps(None)
          rate = list()
          for sess_id in sorted(total_timestamps.keys()):
              batchsize = batchsizes[sess_id]
              timestamps = total_timestamps[sess_id]
              rate.extend((batchsize * 2) / np.diff(timestamps))
          retval = np.array(rate)
 
</s> remove         texts = ["{} ({})".format(titles[0], side),
                 "{0} > {0}".format(titles[0]),
                 "{} > {}".format(titles[0], titles[1])]
 </s> add         texts = [f"{titles[0]} ({side})",
                 f"{titles[0]} > {titles[0]}",
                 f"{titles[0]} > {titles[1]}"] </s> remove         retval = dict()
 </s> add         retval = {} </s> remove         m_t_indices = tf.gather(m_t, indices)
 </s> add         m_t_indices = tf.gather(m_t, indices)  # pylint:disable=no-value-for-parameter </s> remove         samples = list()
 </s> add         samples = [] </s> remove         self.required_packages = list()
        self.missing_packages = list()
        self.conda_missing_packages = list()
 </s> add         self.required_packages = []
        self.missing_packages = []
        self.conda_missing_packages = []
        rate = []
          """
          logger.debug("Calculating totals rate")
          batchsizes = _SESSION.batch_sizes
          total_timestamps = _SESSION.get_timestamps(None)
        rate = []
          for sess_id in sorted(total_timestamps.keys()):
              batchsize = batchsizes[sess_id]
              timestamps = total_timestamps[sess_id]
              rate.extend((batchsize * 2) / np.diff(timestamps))
          retval = np.array(rate)
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/stats.py