Keras incompatible with Tensorflow, because out of date

Description:

Additional info:

  • package version(s):

tensorflow 2.16.1-6 python-tensorflow 2.16.1-6 python-keras 2.15.0-2

  • config and/or log files:

Here I am trying out keras_cv which fails with that stack trace:

  File "stable_diffusion.py", line 9, in generate
    import keras_cv
  File "/usr/lib/python3.12/site-packages/keras_cv/__init__.py", line 10, in <module>
    from keras_cv.api import *  # noqa: F403
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/keras_cv/api/__init__.py", line 7, in <module>
    from keras_cv.api import bounding_box
  File "/usr/lib/python3.12/site-packages/keras_cv/api/bounding_box/__init__.py", line 7, in <module>
    from keras_cv.src.bounding_box.converters import convert_format
  File "/usr/lib/python3.12/site-packages/keras_cv/src/__init__.py", line 30, in <module>
    from keras_cv.src import bounding_box  # noqa: E402
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/keras_cv/src/bounding_box/__init__.py", line 15, in <module>
    from keras_cv.src.bounding_box.converters import _decode_deltas_to_boxes
  File "/usr/lib/python3.12/site-packages/keras_cv/src/bounding_box/converters.py", line 19, in <module>
    from keras_cv.src.api_export import keras_cv_export
  File "/usr/lib/python3.12/site-packages/keras_cv/src/api_export.py", line 17, in <module>
    from keras_cv.src.backend import keras
  File "/usr/lib/python3.12/site-packages/keras_cv/src/backend/__init__.py", line 31, in <module>
    import keras_cv.src.backend.keras2 as keras  # noqa: E402
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/keras_cv/src/backend/keras2.py", line 18, in <module>
    from tensorflow.keras import *  # noqa: F403, F401
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/keras/api/_v2/keras/__init__.py", line 3, in <module>
    from keras.api._v2.keras import __internal__
  File "/usr/lib/python3.12/site-packages/keras/__init__.py", line 3, in <module>
    from keras import __internal__
  File "/usr/lib/python3.12/site-packages/keras/__internal__/__init__.py", line 6, in <module>
    from keras.__internal__ import models
  File "/usr/lib/python3.12/site-packages/keras/__internal__/models/__init__.py", line 3, in <module>
    from keras.src.models.cloning import clone_and_build_model
  File "/usr/lib/python3.12/site-packages/keras/src/__init__.py", line 21, in <module>
    from keras.src import applications
  File "/usr/lib/python3.12/site-packages/keras/src/applications/__init__.py", line 18, in <module>
    from keras.src.applications.convnext import ConvNeXtBase
  File "/usr/lib/python3.12/site-packages/keras/src/applications/convnext.py", line 33, in <module>
    from keras.src.engine import sequential
  File "/usr/lib/python3.12/site-packages/keras/src/engine/sequential.py", line 24, in <module>
    from keras.src.engine import functional
  File "/usr/lib/python3.12/site-packages/keras/src/engine/functional.py", line 33, in <module>
    from keras.src.engine import training as training_lib
  File "/usr/lib/python3.12/site-packages/keras/src/engine/training.py", line 48, in <module>
    from keras.src.saving import saving_api
  File "/usr/lib/python3.12/site-packages/keras/src/saving/saving_api.py", line 25, in <module>
    from keras.src.saving.legacy import save as legacy_sm_saving_lib
  File "/usr/lib/python3.12/site-packages/keras/src/saving/legacy/save.py", line 27, in <module>
    from keras.src.saving.legacy.saved_model import load_context
  File "/usr/lib/python3.12/site-packages/keras/src/saving/legacy/saved_model/load_context.py", line 68, in <module>
    tf.__internal__.register_load_context_function(in_load_context)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'tensorflow._api.v2.compat.v2.__internal__' has no attribute 'register_load_context_function'. Did you mean: 'register_call_context_function'?

If I install it in a venv everything works fine. It pulls in keras 3.3.3, though, which doesn't ask for register_load_context_function(). Tensorflow 2.16.1 from PyPI locks Keras to that version, so I suppose that is the correct one.