我目前正在尝试使用 keras Tuner 优化我的神经网络,其中一个变量是我的模型中隐藏层的数量,在我学习的所有教程中,如下所示。
从 kerastuner 导入 HyperModel 类 RegressionHyperModel(HyperModel): def init (self, input_shape): self.input_shape = input_shape
def build(self, hp):
model = Sequential()
for i in range(hp.Int('n_layers', 1, 3)):
model.add(
Dense(
units=hp.Int('units_'+str(i), 4, 64, 4, default=8),
activation=hp.Choice(
'dense_activation_'+str(i),
values=['relu', 'tanh', 'sigmoid'],
default='relu'),
input_shape=input_shape
)
)
model.add(
Dropout(
hp.Float(
'dropout_'+str(i),
min_value=0.0,
max_value=0.9,
default=0,
step=0.1)
)
)
model.add(Dense(10201))
model.compile(
optimizer='adam',loss='mse',metrics=['mse']
)
return model
特别是在使用 for i in range(hp.Int('n_layers', 1, 3)) 时:
但是当模型搜索最优的NN架构时, 当n_hidden=3时有结果如图
但是当试验进行时 n_hidden==1 它显示 当 n==1
即使当 n_layers = 1 为什么仍然有密集的activation_2,dropout_2等等,甚至units_2