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

加载TensorFlow的.h5模型时报weight_decay参数无效的错误求助

解决方案

方法1:使用旧版兼容优化器加载模型

新版Keras提供了legacy(旧版)优化器模块,完全兼容旧模型的参数配置,加载时直接指定即可:

from tensorflow.keras.models import load_model
from tensorflow.keras.optimizers.legacy import Adam as LegacyAdam

# 替换为你的模型路径
model = load_model('你的模型文件.h5', custom_objects={'Adam': LegacyAdam})

如果模型使用其他优化器(如SGD),替换为对应legacy版本即可,比如将SGD换成legacy.SGD。

方法2:降级TensorFlow/Keras到原版本

若不想修改代码,可直接降级到之前能正常运行的TensorFlow版本,在Anaconda Prompt中执行:

# 替换为你之前使用的版本号,比如2.8.0
conda install tensorflow==2.8.0

环境更新完成后,重新运行加载模型的代码即可恢复正常。

方法3:重新训练并保存模型(若有训练代码)

如果保留了原训练代码,可改用新版Keras的优化器API重新训练并保存模型,适配新版本环境:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
from tensorflow.keras.optimizers import Adam

# 构建原模型结构(示例)
model = Sequential()
model.add(LSTM(64, input_shape=(10, 1)))
model.add(Dense(1))

# 新版API配置优化器(weight_decay参数可直接传入)
optimizer = Adam(weight_decay=0.001)
model.compile(optimizer=optimizer, loss='mse')

# 训练后保存模型
model.fit(X_train, y_train, epochs=10)
model.save('适配新版的模型.h5')

问题原因

重装Anaconda/Spyder后,TensorFlow/Keras版本被升级,新版的optimizer_experimental.Optimizer不再支持直接传入weight_decay参数,但旧模型保存时的优化器配置包含该参数,导致加载时出现参数不兼容错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:20:58