0

我目前正在尝试使用 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

4

0 回答 0