Keras Tuner num_layers

При добавлении цикла для генерации слоев в keras tuner слои генерируются по максимально возможному количеству. При чем первая генерация проходит правильно (в range указан диапазон 1 - 3). На первой генерации выбирается количество 2 и 2 слоя создается. Но как только выбирается и создается 3 слоя - после этого, даже если указано, что будет добавлен 1 слой (или 2) - все-равно добавляется 3 слоя

def build_model(hp):
    model = Sequential()

    activation_choice = hp.Choice("activation", values=["relu", "sigmoid", "tanh", "elu", "selu"])

    model.add(Dense(units=hp.Int("layer_1", min_value=512, max_value=1024, step=32),
                    input_dim=784,
                    activation=activation_choice))
    
    for i in range(hp.Int('num_layers', 1, 3)):
        model.add(Dense(units=hp.Int('units_' + str(i),
                                            min_value=32,
                                            max_value=512,
                                            step=32),
                               activation='relu'))
    
    model.add(Dense(10, activation="softmax"))
        
    model.compile(
        optimizer=hp.Choice("optimizer", values=["adam", "rmsprop", "SGD"]),
        loss=hp.Choice("loss", values=["mse", "mae", "mape", "msle", "kld"]),
        metrics=['accuracy'])
    return model

Первая генерация:

Hyperparameters: |-activation: sigmoid
|-layer_1: 672
|-loss: mape
|-num_layers: 2 <--------------
|-optimizer: SGD
|-units_0: 352 <--------------
|-units_1: 32 <--------------

Вторая генерация:

Hyperparameters:
|-activation: relu
|-layer_1: 736
|-loss: msle
|-num_layers: 3 <--------------
|-optimizer: rmsprop
|-units_0: 160 <--------------
|-units_1: 416 <--------------
|-units_2: 32 <--------------

Третья и последующие генерации:

Hyperparameters:
|-activation: elu
|-layer_1: 992
|-loss: msle
|-num_layers: 1 <--------------
|-optimizer: adam
|-units_0: 96 <--------------
|-units_1: 352 <--------------
|-units_2: 128 <--------------

Hyperparameters:
|-activation: selu
|-layer_1: 768
|-loss: kld
|-num_layers: 2 <--------------
|-optimizer: rmsprop
|-units_0: 480 <--------------
|-units_1: 352 <--------------
|-units_2: 416 <--------------


Ответы (0 шт):