diff --git a/python/tvm/relay/frontend/keras.py b/python/tvm/relay/frontend/keras.py index 0d932cadccbf..1913d4a2681a 100644 --- a/python/tvm/relay/frontend/keras.py +++ b/python/tvm/relay/frontend/keras.py @@ -1526,12 +1526,19 @@ 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 + 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 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: