Keras Tuner documentation
Keras Tuner官方网站的文档 documentation
要求
Python 3.6
TensorFlow 2.0
安装 keras-tuner
pip install -U keras-tuner
或者Install from source:
git clone https://github.com/keras-team/keras-tuner.git
cd keras-tuner
pip install .
using random search.随机搜索
single-layer dense neural network using random search.
用法:基础
这是使用随机搜索为单层密集神经网络执行超参数调整的方法。
首先,我们定义一个模型构建功能。它采用一个参数hp,您可以从该参数中采样超参数,例如hp.Int(‘units’, min_value=32, max_value=512, step=32) (某个范围内的整数)。
此函数返回编译的模型。
from tensorflow import keras
from tensorflow.keras import layers
from kerastuner.tuners import RandomSearch
def build_model(hp):
model = keras.Sequential()
model.add(layers.Dense(units=hp.Int('units',
min_value=32,
max_value=512,
step=32),
activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.compile(
optimizer=keras.optimizers.Adam(
hp.Choice('learning_rate',
values=[1e-2, 1e-3, 1e-4])),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
return model
接下来,实例化一个调谐器。您应该指定模型构建功能,要优化的目标的名称(对于内置指标是自动推断出最小化还是最大化),max_trials要测试的试验总数()以及应该建立并适合每个试验(executions_per_trial)。
可用的调谐器为RandomSearch和Hyperband。
注意:每个试验多次执行的目的是减少结果差异,从而能够更准确地评估模型的性能。如果您想更快地获得结果,则可以进行设置executions_per_trial=1(针对每种模型配置进行单轮训练)。
您可以打印搜索空间的摘要:
tuner.search_space_summary()
然后,开始搜索最佳的超参数配置。search的调用和model.fit()具有相同的签名
tuner.search(x, y,
epochs=5,
validation_data=(val_x, val_y))
这是在search过程中发生的动作:通过调用模型构建函数model-building function来迭代构建模型&