Hardik commited on
Commit
606b50e
·
1 Parent(s): a6150bc

LSTM: use keras3 directly (not tf-keras) for loading Keras 3 model

Browse files
ml_service/app/services/model_loader.py CHANGED
@@ -9,9 +9,10 @@ from app.config import settings
9
  os.environ["TF_USE_LEGACY_KERAS"] = "1"
10
  import tensorflow as tf
11
  try:
12
- import tf_keras as keras
13
  except ImportError:
14
- import keras
 
15
 
16
  warnings.filterwarnings("ignore")
17
 
@@ -108,18 +109,21 @@ class ModelManager:
108
  loaded = False
109
  last_lstm_error = ""
110
 
111
- if is_h5 or True:
112
- for loader_fn, name in [
113
- (lambda p: tf.keras.models.load_model(p, compile=False), "tf.keras"),
114
- (lambda p: keras.models.load_model(p, compile=False), "keras"),
115
- ]:
116
- try:
117
- self.lstm_model = loader_fn(model_path)
118
- loaded = True
119
- break
120
- except Exception as e:
121
- last_lstm_error = f"{name}: {str(e)}"
122
- continue
 
 
 
123
 
124
  if not loaded:
125
  raise RuntimeError(f"Could not load LSTM model ({'h5' if is_h5 else 'zip'}): {last_lstm_error}")
 
9
  os.environ["TF_USE_LEGACY_KERAS"] = "1"
10
  import tensorflow as tf
11
  try:
12
+ import tf_keras
13
  except ImportError:
14
+ tf_keras = None
15
+ import keras as keras3
16
 
17
  warnings.filterwarnings("ignore")
18
 
 
109
  loaded = False
110
  last_lstm_error = ""
111
 
112
+ for loader_fn, name in [
113
+ (lambda p: keras3.models.load_model(p), "keras3"),
114
+ (lambda p: keras3.saving.load_model(p), "keras3_saving"),
115
+ (lambda p: tf.keras.models.load_model(p, compile=False), "tf.keras"),
116
+ (lambda p: tf_keras.models.load_model(p, compile=False), "tf_keras"),
117
+ ]:
118
+ if name == "tf_keras" and tf_keras is None:
119
+ continue
120
+ try:
121
+ self.lstm_model = loader_fn(model_path)
122
+ loaded = True
123
+ break
124
+ except Exception as e:
125
+ last_lstm_error = f"{name}: {str(e)}"
126
+ continue
127
 
128
  if not loaded:
129
  raise RuntimeError(f"Could not load LSTM model ({'h5' if is_h5 else 'zip'}): {last_lstm_error}")