当您构建调整超参数的模型时,除了模型架构之外,您还定义了超参数搜索空间。为了调整超参数的模型称为 Hyper Model。
您可以通过两种方法定义 Hyper Model:
HyperModel
继承 Keras Tuner
类别。另外两个预定义的HyperModel类别 HyperXception
和HyperResNet
可用於计算机视觉应用程序。
以下模型函数中,
Int()
用来定义密集单元的搜索空间的最小值和最大值。Choice()
用於设定学习率。def model_builder(hp):
model = keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28, 28)))
# 设定搜索值范围
hp_units = hp.Int('units', min_value=32, max_value=512, step=32)
model.add(
keras.layers.Dense(
units=hp_units,
activation='relu',
name='dense_1'
)
)
model.add(keras.layers.Dropout(0.2))
model.add(keras.layers.Dense(10, activation='softmax'))
# 设定学习率范围 0.01, 0.001, or 0.0001
hp_learning_rate = hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])
model.compile(
optimizer=keras.optimizers.Adam(learning_rate=hp_learning_rate),
loss=keras.losses.SparseCategoricalCrossentropy(),
metrics=['accuracy']
)
return model
在此设定 Tuner 如下,细节调整您可以参考官方文件。
# Instantiate the tuner
tuner = kt.Hyperband(
model_builder,
objective='val_accuracy',
max_epochs=10,
factor=3,
directory='kt_dir',
project_name='kt_hyperband'
)
另外为了节省不必要的训练时间,定义了一个 EarlyStopping,当验证的 loss 在 5 个 epoch 没改善时停止训练,以下为持续搜寻的过程。
最後将产生一组最佳超参数搜寻结果。
Sass媒体查询其实与Css媒体查询是差不多的~ 只是在Sass中也可以使用SassScript e...
Get our environment sep up # modules we'll use imp...
最短路径演算法 最短路径是在赋予edges权重的「加权图形」里,指定「起点」和「终点」,求出起点到终...
支线任务:共笔部落格切版 礼拜一的时候终於把留言版做完了,接着是弄共笔部落格的文章列表样板,花了一两...
=x= 🌵 网址显示方式管理。 短网址功能介绍 : 📌 如果仔细观察网址,可以发现平常浏览的网页并不...