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

使用sklearn的GridSearchCV调优Keras模型时出现learning_rate非法参数错误

错误原因

  • 初始化KerasRegressor时build_fn参数传值错误:你传入了create_model()(带括号),相当于直接执行函数返回了固定模型实例,框架无法动态注入你要调优的超参数,应该传入不带括号的函数对象create_model
  • 超参数名不匹配:param_grid中定义的键名必须和create_model的入参名完全一致,你的函数入参叫learn_rate,但参数网格里写的是learning_rate,名称不匹配导致框架无法识别该参数
  • 可选兼容优化:高版本TensorFlow的Adam优化器已废弃lr参数,统一使用learning_rate参数定义学习率,建议同步修改避免版本警告

修正后代码

# Sequential API
def create_model(learn_rate=0.01):
    model = Sequential()
    model.add(Dense(128, activation='relu'))
    model.add(Dense(32, activation='relu'))
    model.add(Dense(1))
    opt = keras.optimizers.Adam(learning_rate=learn_rate)
    model.compile(optimizer=opt,
                loss='mean_squared_error',
                metrics=['mae', 'mean_absolute_percentage_error'])

    return model

# 超参数调优部分
model = KerasRegressor(build_fn=create_model, verbose=0)
param_grid = {'learn_rate': [0.001, 0.01, 0.1]}
grid = GridSearchCV(estimator=model, param_grid=param_grid, cv=5)
grid.fit(X_train, Y_train)
print(grid.best_params_)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:06:01