Skip to content

Regression test: keras deserialization error: 'keras.metrics.mse' #65

@fbrausse

Description

@fbrausse

I can't run regression test no. 16 on the master branch (command line as generated by smlp_regr.py):

~/intel/smlp-pip/regr_smlp/code $ ../../src/run_smlp.py -model_name "../models/Test8_smlp_toy_num_resp_mult" -out_dir ./ -pref Test16 -mode predict -resp y1,y2 -feat x,p1,p2 -model nn_keras -save_model f -use_model t -mrmr_pred 0 -plots f -pred_plots f -resp_plots f -seed 10  -log_time f  -new_dat "../data/smlp_toy_num_resp_mult_pred_labeled.csv"
[...]
smlp_logger - INFO - Seving model rerun configuration in file ./../models/Test8_smlp_toy_num_resp_mult_rerun_model_config.json
Traceback (most recent call last):
  File "/home/kane/intel/smlp-pip/regr_smlp/code/../../src/run_smlp.py", line 17, in <module>
    main(sys.argv)
  File "/home/kane/intel/smlp-pip/regr_smlp/code/../../src/run_smlp.py", line 13, in main
    smlpInst.smlp_flow()
  File "/home/kane/intel/smlp-pip/src/smlp_py/smlp_flows.py", line 316, in smlp_flow
    model = self.modelInst.build_models(args.model, X, y, X_train, y_train, X_test, y_test, X_new, y_new,
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/intel/smlp-pip/src/smlp_py/smlp_models.py", line 442, in build_models
    model = keras_load_model(self.model_filename(algo, '.h5'))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/saving/saving_api.py", line 196, in load_model
    return legacy_h5_format.load_model_from_hdf5(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/legacy/saving/legacy_h5_format.py", line 159, in load_model_from_hdf5
    **saving_utils.compile_args_from_training_config(
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/legacy/saving/saving_utils.py", line 143, in compile_args_from_training_config
    loss = _deserialize_nested_config(losses.deserialize, loss_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/legacy/saving/saving_utils.py", line 204, in _deserialize_nested_config
    return {
           ^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/legacy/saving/saving_utils.py", line 205, in <dictcomp>
    k: _deserialize_nested_config(deserialize_fn, v)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/legacy/saving/saving_utils.py", line 202, in _deserialize_nested_config
    return deserialize_fn(config)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/losses/__init__.py", line 155, in deserialize
    return serialization_lib.deserialize_keras_object(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/saving/serialization_lib.py", line 590, in deserialize_keras_object
    return deserialize_keras_object(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/saving/serialization_lib.py", line 693, in deserialize_keras_object
    return _retrieve_class_or_fn(
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kane/.local/lib/python3.11/site-packages/keras/src/saving/serialization_lib.py", line 825, in _retrieve_class_or_fn
    raise ValueError(
ValueError: Could not deserialize 'keras.metrics.mse' because it is not a KerasSaveable subclass

I've tried keras versions 3.11.3, 3.12.0 and the latest 3.13.2. All produce the same error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions