wisamWR commited on
Commit
9cb67cf
·
1 Parent(s): 7e70b8e

Fix: use enable_unsafe_deserialization for MobileNetV3 loading

Browse files
Files changed (1) hide show
  1. app.py +8 -16
app.py CHANGED
@@ -111,22 +111,14 @@ def preprocess_image(img_array: np.ndarray, mode: str) -> np.ndarray:
111
  # dikenali agar load_model tidak error.
112
  import keras
113
 
114
- # Fix MobileNetV3 hard_swish: saat deserialization, 3.0 dipass sebagai
115
- # positional arg ke Layer.__call__ yang menolak non-tensor positional args.
116
- # Monkey-patch: convert float/int positional args jadi tensor constant.
117
- _original_layer_call = keras.layers.Layer.__call__
118
-
119
- def _patched_layer_call(self, *args, **kwargs):
120
- new_args = []
121
- for arg in args:
122
- if isinstance(arg, (int, float)):
123
- new_args.append(tf.constant(arg))
124
- else:
125
- new_args.append(arg)
126
- return _original_layer_call(self, *tuple(new_args), **kwargs)
127
-
128
- keras.layers.Layer.__call__ = _patched_layer_call
129
- logger.info("Patched Layer.__call__ for MobileNetV3 compat")
130
 
131
 
132
  _OriginalDense = keras.layers.Dense
 
111
  # dikenali agar load_model tidak error.
112
  import keras
113
 
114
+ # Fix MobileNetV3 hard_swish: deserialization gagal karena 3.0 dipass
115
+ # sebagai positional arg. enable_unsafe_deserialization() menonaktifkan
116
+ # validasi ketat saat reconstruct model dari config.
117
+ try:
118
+ keras.config.enable_unsafe_deserialization()
119
+ logger.info("Enabled unsafe deserialization for MobileNetV3 compat")
120
+ except AttributeError:
121
+ logger.warning("keras.config.enable_unsafe_deserialization not available")
 
 
 
 
 
 
 
 
122
 
123
 
124
  _OriginalDense = keras.layers.Dense