ad12/DOSMA

[BUG] TensorFlow 2.5.0 not supported

Opened this issue · 0 comments

ad12 commented

Describe the bug
With tensorflow==2.5.0, we get an error message like the one below:

tests/util.py:18: in <module>
    from dosma.cli import SUPPORTED_SCAN_TYPES, parse_args
dosma/cli.py:36: in <module>
    from dosma.models.seg_model import SegModel
dosma/models/__init__.py:1: in <module>
    from dosma.models import oaiunet2d, util
dosma/models/oaiunet2d.py:14: in <module>
    from keras.models import Model
/opt/hostedtoolcache/Python/3.6.13/x64/lib/python3.6/site-packages/keras/__init__.py:20: in <module>
    from . import initializers
/opt/hostedtoolcache/Python/3.6.13/x64/lib/python3.6/site-packages/keras/initializers/__init__.py:124: in <module>
    populate_deserializable_objects()
/opt/hostedtoolcache/Python/3.6.13/x64/lib/python3.6/site-packages/keras/initializers/__init__.py:49: in populate_deserializable_objects
    LOCAL.GENERATED_WITH_V2 = tf.__internal__.tf2.enabled()
E   AttributeError: module 'tensorflow.compat.v2.__internal__' has no attribute 'tf2'

To Reproduce

import dosma

Expected behavior
No error.

Stopgap solution
Install tensorflow and Keras with pip install tensorflow==2.4.1 keras==2.4.3

Potential Fix
As mentioned in this issue, tensorflow>=2.0 should import keras tools using import tensorflow.keras instead of import keras. All files where packages are imported from keras should first check the version for tensorflow and then rename keras. In pseudo-code, this is:

if tensorflow_version >= 2.0:
    import tensorflow.keras as keras

from keras...