带有指标的 load_model

问题描述

我使用我在完成时定义的指标保存模型 here 。 他们是否执行了以下操作:

def get_lr_metric(optimizer):
    def lr(y_true,y_pred):
        return optimizer.lr
    return lr

optimizer = keras.optimizers.Adam()
lr_metric = get_lr_metric(optimizer)

model.compile(
    optimizer=optimizer,metrics=['accuracy',lr_metric],loss='mean_absolute_error',)

效果很好。 但是,当我尝试加载此模块时:

keras.models.load_model(model_path,custom_objects = {'get_lr_metric': get_lr_metric})

我得到: ValueError:当前无法恢复 _tf_keras_metric 类型的自定义对象。请确保图层在保存时实现了 get_configfrom_config。此外,请在调用 custom_objects 时使用 load_model() 参数。

尝试解决方here

def get_lr_metric(y_true,y_pred):
    return 1

keras.models.load_model(model_path,custom_objects = {'get_lr_metric': get_lr_metric})

显示相同的错误消息。

我在 Windows 10 上使用 tensorflow 2.3.0 (keras 2.4.0) 和 Python 3.8。

我应该如何加载模型?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)