pass

来源:2-17 实战sklearn封装keras模型

战战的坚果

2020-04-26

# RandomizedSearchCV
# 1. 转化为sklearn的model
# 2. 定义参数集合
# 3. 搜索参数

def build_model(hidden_layers = 1,
                layer_size = 30,
                learning_rate = 3e-3):
    model = keras.models.Sequential()
    model.add(keras.layers.Dense(layer_size, activation='relu',
                                 input_shape=x_train.shape[1:]))
    for _ in range(hidden_layers - 1):
        model.add(keras.layers.Dense(layer_size,
                                     activation = 'relu'))
    model.add(keras.layers.Dense(1))
    optimizer = keras.optimizers.SGD(learning_rate)
    model.compile(loss = 'mse', optimizer = optimizer)
    return model

sklearn_model = KerasRegressor(
    build_fn = build_model)
callbacks = [keras.callbacks.EarlyStopping(patience=5, min_delta=1e-2)]
history = sklearn_model.fit(x_train_scaled, y_train,
                            epochs = 10,
                            validation_data = (x_valid_scaled, y_valid),
                            callbacks = callbacks)

老师,这段代码中: for _ in range(hidden_layers - 1):
hidden_layers - 1为什么要减1?隐藏层不是除了输入层和输出层之外的层次吗?它的前面的那一层中指明了input_shape它就是输入层呀,难道还有别的输入层?我没看到。

写回答

1回答

正十七

2020-04-28

前面那一层就是隐含层啊,它会把数据从input_shape变成layer_size,所以是第一个隐含层。这个代码里没有输入层的概念,输入只是输入,不是层。

0
0

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程

相似问题

pass

回答 1

pass

回答 1

pass

回答 1

pass

回答 1

pass

回答 1