From c5a4d063b86034f58bb904914beb58ea5f024585 Mon Sep 17 00:00:00 2001 From: haoyang9804 Date: Sat, 8 Jul 2023 15:16:22 +0800 Subject: [PATCH 1/7] Fix keras version problem --- python/tvm/relay/frontend/keras.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/python/tvm/relay/frontend/keras.py b/python/tvm/relay/frontend/keras.py index 3dc055108416..432f12a6f37c 100644 --- a/python/tvm/relay/frontend/keras.py +++ b/python/tvm/relay/frontend/keras.py @@ -1524,12 +1524,17 @@ def _convert_layer(keras_layer, etab, scope=""): raise ValueError("Keras frontend currently supports tensorflow backend only.") if keras.backend.image_data_format() != "channels_last": raise ValueError("Keras frontend currently supports data_format = channels_last only.") - expected_model_class = keras.engine.training.Model - if hasattr(keras.engine, "InputLayer"): - input_layer_class = keras.engine.InputLayer + if keras.__version__ >= '2.13.0': + import keras.src.engine as E + else: + import keras.engine as E + + expected_model_class = E.training.Model + if hasattr(E, "InputLayer"): + input_layer_class = E.InputLayer else: # TFlite >=2.6 - input_layer_class = keras.engine.input_layer.InputLayer + input_layer_class = E.input_layer.InputLayer else: # Importing from Tensorflow Keras (tf.keras) try: From e05a4749885e2570d6f0198f6bcd4045dbe8022d Mon Sep 17 00:00:00 2001 From: haoyang9804 Date: Sat, 8 Jul 2023 17:33:10 +0800 Subject: [PATCH 2/7] Fix keras version problem --- python/tvm/relay/frontend/keras.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/tvm/relay/frontend/keras.py b/python/tvm/relay/frontend/keras.py index 432f12a6f37c..f1d8a83d7ad2 100644 --- a/python/tvm/relay/frontend/keras.py +++ b/python/tvm/relay/frontend/keras.py @@ -1528,7 +1528,6 @@ def _convert_layer(keras_layer, etab, scope=""): import keras.src.engine as E else: import keras.engine as E - expected_model_class = E.training.Model if hasattr(E, "InputLayer"): input_layer_class = E.InputLayer From 52e2480a3e71759cc4d02c444597d6539915b4b8 Mon Sep 17 00:00:00 2001 From: haoyang9804 Date: Sat, 8 Jul 2023 17:36:28 +0800 Subject: [PATCH 3/7] Fix keras version problem --- python/tvm/relay/frontend/keras.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/tvm/relay/frontend/keras.py b/python/tvm/relay/frontend/keras.py index f1d8a83d7ad2..950010c0c26b 100644 --- a/python/tvm/relay/frontend/keras.py +++ b/python/tvm/relay/frontend/keras.py @@ -1524,7 +1524,7 @@ def _convert_layer(keras_layer, etab, scope=""): raise ValueError("Keras frontend currently supports tensorflow backend only.") if keras.backend.image_data_format() != "channels_last": raise ValueError("Keras frontend currently supports data_format = channels_last only.") - if keras.__version__ >= '2.13.0': + if keras.__version__ >= "2.13.0": import keras.src.engine as E else: import keras.engine as E From f019707656d85dd456c6f5848677b0e762e3a278 Mon Sep 17 00:00:00 2001 From: haoyang9804 Date: Fri, 14 Jul 2023 00:30:46 +0800 Subject: [PATCH 4/7] Fix keras version problem --- python/tvm/relay/frontend/keras.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/python/tvm/relay/frontend/keras.py b/python/tvm/relay/frontend/keras.py index 950010c0c26b..8ea0956274dd 100644 --- a/python/tvm/relay/frontend/keras.py +++ b/python/tvm/relay/frontend/keras.py @@ -1524,7 +1524,8 @@ def _convert_layer(keras_layer, etab, scope=""): raise ValueError("Keras frontend currently supports tensorflow backend only.") if keras.backend.image_data_format() != "channels_last": raise ValueError("Keras frontend currently supports data_format = channels_last only.") - if keras.__version__ >= "2.13.0": + import tensorflow + if tensorflow.__version__ >= "2.13.0": import keras.src.engine as E else: import keras.engine as E From fa8463323e5da83625b40bae11914d916cc59c88 Mon Sep 17 00:00:00 2001 From: haoyang9804 Date: Fri, 14 Jul 2023 01:09:03 +0800 Subject: [PATCH 5/7] Fix keras version problem --- python/tvm/relay/frontend/keras.py | 1 + 1 file changed, 1 insertion(+) diff --git a/python/tvm/relay/frontend/keras.py b/python/tvm/relay/frontend/keras.py index 8ea0956274dd..7f079c393813 100644 --- a/python/tvm/relay/frontend/keras.py +++ b/python/tvm/relay/frontend/keras.py @@ -1525,6 +1525,7 @@ def _convert_layer(keras_layer, etab, scope=""): if keras.backend.image_data_format() != "channels_last": raise ValueError("Keras frontend currently supports data_format = channels_last only.") import tensorflow + if tensorflow.__version__ >= "2.13.0": import keras.src.engine as E else: From 49bc724e840ae07e1ff6f39e5a03d41223ab30e1 Mon Sep 17 00:00:00 2001 From: haoyang9804 Date: Fri, 14 Jul 2023 10:11:07 +0800 Subject: [PATCH 6/7] Fix keras version problem --- python/tvm/relay/frontend/keras.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/tvm/relay/frontend/keras.py b/python/tvm/relay/frontend/keras.py index 6e21cd91dbf1..71cc7a04793a 100644 --- a/python/tvm/relay/frontend/keras.py +++ b/python/tvm/relay/frontend/keras.py @@ -1528,7 +1528,7 @@ def _convert_layer(keras_layer, etab, scope=""): raise ValueError("Keras frontend currently supports data_format = channels_last only.") import tensorflow - if tensorflow.__version__ >= "2.13.0": + if tensorflow.__version__ == "2.13.0" and keras.__version__ == "2.13.1": import keras.src.engine as E else: import keras.engine as E From 77dad0f3dbf4bde69ec9112b67cb96c58a28ae44 Mon Sep 17 00:00:00 2001 From: haoyang9804 Date: Fri, 14 Jul 2023 10:26:40 +0800 Subject: [PATCH 7/7] Fix keras version problem --- python/tvm/relay/frontend/keras.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/python/tvm/relay/frontend/keras.py b/python/tvm/relay/frontend/keras.py index 71cc7a04793a..1913d4a2681a 100644 --- a/python/tvm/relay/frontend/keras.py +++ b/python/tvm/relay/frontend/keras.py @@ -1526,12 +1526,13 @@ def _convert_layer(keras_layer, etab, scope=""): raise ValueError("Keras frontend currently supports tensorflow backend only.") if keras.backend.image_data_format() != "channels_last": raise ValueError("Keras frontend currently supports data_format = channels_last only.") - import tensorflow - - if tensorflow.__version__ == "2.13.0" and keras.__version__ == "2.13.1": - import keras.src.engine as E - else: + try: import keras.engine as E + except ImportError: + try: + import keras.src.engine as E + except ImportError: + raise ImportError("Cannot find Keras's engine") expected_model_class = E.training.Model if hasattr(E, "InputLayer"): input_layer_class = E.InputLayer