From afc8647f89ea7446f701f2460c49b02e7d23b25e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Marquis?= Date: Sat, 17 Aug 2024 15:42:44 +0200 Subject: [PATCH] fix(keras): compatibility with Keras 3.4.0 (#4922) * Fix keras.save_model compatibility with Keras 3 Compatibility was lost with Keras 3. This restore the functionality when using Keras 3.4.0 or newer. Fix #4921 * ci: auto fixes from pre-commit.ci For more information, see https://pre-commit.ci * Adjust framework dependency version for Keras * Fix minimal version check * Add compatibility with older keras 2.x version * ci: auto fixes from pre-commit.ci For more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- noxfile.py | 2 +- src/bentoml/_internal/frameworks/keras.py | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index d8a4e9fe2f5..ac6ad8e66bb 100644 --- a/noxfile.py +++ b/noxfile.py @@ -27,7 +27,7 @@ "jaxlib; platform_system!='Windows'", "chex; platform_system!='Windows'", ], - "keras": ["keras"], + "keras": ["keras>=3.4"], "lightgbm": ["lightgbm"], "onnx": ["onnx", "onnxruntime", "skl2onnx"], "picklable_model": [], diff --git a/src/bentoml/_internal/frameworks/keras.py b/src/bentoml/_internal/frameworks/keras.py index e98f78f1ef9..9654278bc10 100644 --- a/src/bentoml/_internal/frameworks/keras.py +++ b/src/bentoml/_internal/frameworks/keras.py @@ -269,7 +269,15 @@ def KerasSequentialModel() -> keras.models.Model: metadata=metadata, signatures=signatures, ) as bento_model: - model.save(bento_model.path, include_optimizer=include_optimizer, **kwargs) + if keras.__version__ >= "3.4.0": + model.save( + bento_model.path, + zipped=False, + include_optimizer=include_optimizer, + **kwargs, + ) + else: + model.save(bento_model.path, include_optimizer=include_optimizer, **kwargs) return bento_model