【发布时间】:2021-11-12 04:53:03
【问题描述】:
我想使用 sklearn 中的 GridSearchCV 优化学习率,然后优化我模型的其他超参数。你可以在下面看到我的代码。不幸的是,我总是得到错误:ValueError: learning_rate is not a legal parameter
这里也有类似的问题("ValueError: activation is not a legal parameter" with Keras classifier 或 learning_rate is not a legal parameter),但对我没有帮助。我还更改了 lr 或 learn_rate 中的 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(lr=learn_rate)
model.compile(optimizer=opt,
loss='mean_squared_error',
metrics=['mae', 'mean_absolute_percentage_error'])
return model
# Hyperparameter Tuning
model = KerasRegressor(build_fn=create_model(), verbose=0)
param_grid = {'learning_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_)
希望有人可以帮助我解决我的问题。
【问题讨论】:
标签: python scikit-learn valueerror gridsearchcv