You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载Keras模型时报TypeError:is_legacy_optimizer参数无效求助

解决加载Keras h5模型时的TypeError: is_legacy_optimizer is not a valid argument错误

这个错误是因为保存模型时的TensorFlow/Keras版本和当前加载时的版本不匹配,新旧版本的优化器API存在差异——旧版本保存的模型里的优化器参数,在新版本的optimizer_experimental.Optimizer中不被支持。

下面是几种可行的解决办法:

  • 跳过编译加载,重新编译模型
    如果不需要保留原训练时的优化器状态,可以加载模型时指定compile=False,之后手动重新编译:

    from tensorflow.keras.models import load_model
    model_path = "model/classifier.h5"
    # 不编译加载模型
    model = load_model(model_path, compile=False)
    # 根据你的任务需求重新编译,示例用Adam优化器
    model.compile(optimizer='adam', loss='your_loss_function', metrics=['accuracy'])
    
  • 匹配原模型保存时的TensorFlow版本
    要是需要保留原优化器的训练状态,建议安装和保存模型时完全一致的TensorFlow版本,比如原版本是2.8.0,就执行:

    pip install tensorflow==2.8.0
    
  • 转换为SavedModel格式加载
    若能在旧版本环境中操作,先加载原h5模型,转存为TensorFlow推荐的SavedModel格式,再用新版本加载:

    # 旧版本环境中执行
    from tensorflow.keras.models import load_model
    model = load_model("model/classifier.h5")
    model.save("model/classifier_savedmodel")
    
    # 新版本环境中加载
    model = load_model("model/classifier_savedmodel")
    

    SavedModel格式的兼容性更强,能有效减少版本间的API适配问题。

内容的提问来源于stack exchange,提问作者zerro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:39:12