  from keras.layers import Layer, InputSpec
  from keras import initializers, regularizers, constraints
  from keras import backend as K
  
  
  if get_backend() == "amd":
      from keras.backend \
          import normalize_data_format  # pylint:disable=ungrouped-imports,no-name-in-module
 
</s> remove from keras.utils import get_custom_objects

from lib.utils import get_backend
 </s> add  </s> remove     from keras.backend import normalize_data_format  # pylint:disable=ungrouped-imports
 </s> add     from keras.backend \
        import normalize_data_format  # pylint:disable=ungrouped-imports,no-name-in-module </s> remove from keras.utils import get_custom_objects
 </s> add  </s> remove from keras.optimizers import Adam, Nadam, RMSprop
 </s> add  </s> remove     from tensorflow.python.keras.utils.conv_utils import normalize_data_format
 </s> add     # pylint:disable=no-name-in-module
    from tensorflow.python.keras.utils.conv_utils \
        import normalize_data_format   # pylint:disable=no-name-in-module
from lib.utils import get_backend, get_keras_custom_objects as get_custom_objects
  from keras.layers import Layer, InputSpec
  from keras import initializers, regularizers, constraints
  from keras import backend as K
  
from lib.utils import get_backend, get_keras_custom_objects as get_custom_objects
  
  if get_backend() == "amd":
      from keras.backend \
          import normalize_data_format  # pylint:disable=ungrouped-imports,no-name-in-module
keep keep keep add 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/model/normalization/normalization_common.py