系列文章往期回顾
睿智的keras深度学习(零)——keras使用时可能遇到的参数及含义
睿智的keras深度学习(一)——阈值逻辑单元和多层感知机
睿智的keras深度学习(二)——函数式API构建顺序模型快速上手
睿智的keras深度学习(三)——迅速了解回调函数
睿智的keras深度学习(四)——TensorBoard进行快速、精美的可视化
自动化调整超参数
建立模型
def build_model(n_hidden=1, n_neurons=30, learning_rate=3e-3, input_shape=[8]):
model = Sequential()
model.add(InputLayer(input_shape=input_shape))
for layer in range(n_hidden):
model.add(Dense(n_neurons, activation="relu"))
model.add(Dense(1))
optimizer = SGD(lr=learning_rate)
model.compile(loss='mse', optimizer=optimizer)
return model
这里是用函数构建模型
构建并测试keras回归器
使用keras.wrappers.scikit_learn.KerasRegressor构建的回归器可以使得我们可以像使用sklearn一样使用keras的模型
keras_reg = keras.wrappers.scikit_learn.KerasRegressor(build_model)
keras_reg.fit(X_train, y_train, epochs=100, validation_data=(X_valid, y_valid), callbacks=[keras.callbacks.EarlyStopping(patience=10)])
mse_test = keras_reg.score(X_test, y_test)
mse_test

y_pred = keras_reg.predict(X_new)
y_pred

网格查找合适的超参数
from scipy.stats import reciprocal
from sklearn.model_selection import RandomizedSearchCV
param_distribs = {
"n_hidden":[0, 1, 2, 3],
"n_neurons":np.arange(1, 100),
"learning_rate":reciprocal(3e-4, 3e-2)
}
rnd_search_cv = RandomizedSearchCV(keras_reg, param_distribs, n_iter=10, cv=3)
rnd_search_cv.fit(X_train, y_train,
epochs=100,
validation_data=(X_valid, y_valid),
callbacks=[keras.callbacks.EarlyStopping(patience=10)])
rnd_search_cv.best_params_

rnd_search_cv.best_score_

本文介绍了Keras深度学习的基础知识,包括模型构建、回调函数和TensorBoard可视化。通过实例展示了如何使用KerasRegressor构建并测试回归模型,并利用网格搜索找到最佳超参数。重点讲解了超参数调优的过程,如隐藏层数、神经元数量和学习率的选择。
787

被折叠的 条评论
为什么被折叠?



