  tqdm>=4.62
  psutil>=5.8.0
  numpy>=1.18.0,<1.20.0
  opencv-python>=4.5.3.0
  pillow>=8.3.1
  scikit-learn>=0.24.2
 
</s> remove numpy>=1.18.0,<1.20.0
opencv-python>=4.5.3.0
pillow>=8.3.1
scikit-learn>=0.24.2
fastcluster>=1.1.26
 </s> add numpy>=1.18.0
opencv-python>=4.5.5.0
pillow>=9.0.1
scikit-learn>=1.0.2
fastcluster>=1.2.4 </s> remove class ConvolutionAware(initializers.Initializer):
 </s> add class ConvolutionAware(initializers.Initializer):  # pylint: disable=no-member </s> remove             self.root.geometry("{}x{}+80+80".format(str(initial_dimensions[0]),
                                                    str(initial_dimensions[1])))
 </s> add             self.root.geometry(f"{str(initial_dimensions[0])}x{str(initial_dimensions[1])}+80+80") </s> remove             with open(trigger, "w"):
 </s> add             with open(trigger, "w", encoding="utf8"): </s> remove from keras.utils import get_custom_objects
 </s> add 
tqdm>=4.64
tqdm>=4.64
  psutil>=5.8.0
  numpy>=1.18.0,<1.20.0
  opencv-python>=4.5.3.0
  pillow>=8.3.1
  scikit-learn>=0.24.2
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 
_requirements_base.txt