我正在尝试使用keras-tuner
来调整超参数,例如
!pip install keras-tuner --upgrade
import keras_tuner as kt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.optimizers import Adam
def build_model(hp):
model = Sequential([
Flatten(input_shape=(28, 28)),
Dense(units= hp.Int('units', min_value = 16, max_value = 64, step = 16), activation='relu'),
Dense(units = hp.Int('units', min_value = 8, max_value = 20, step = 2), activation='softmax')
])
model.compile(
optimizer=Adam(learning_rate=hp.Float('learning_rate', min_value=1e-4, max_value=1e-2, sampling='LOG')),
loss='sparse_categorical_crossentropy',
metrics=['accuracy']
)
return model
# Create a RandomSearch Tuner
tuner = kt.RandomSearch(
build_model,
objective='val_accuracy',
max_trials=10,
executions_per_trial=2
)
# Display a summary of the search space
tuner.search_space_summary()
节目
Search space summary
Default search space size: 2
units (Int)
{'default': None, 'conditions': [], 'min_value': 16, 'max_value': 64, 'step': 16, 'sampling': 'linear'}
learning_rate (Float)
{'default': 0.0001, 'conditions': [], 'min_value': 0.0001, 'max_value': 0.01, 'step': None, 'sampling': 'log'}
然而,检查search_space_summary()
输出时,摘要中仅显示第一层,而看不到有关第二层(即)Dense
的信息。Dense
Dense(units = hp.Int('units', min_value = 8, max_value = 20, step = 2), activation='softmax')
我是不是配置错误了,还是它应该输出这样的结果?有人能帮我理解为什么它会输出这样的摘要吗?