gpt4 book ai didi

python - 用keras Grid Search隐藏层数

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:45 24 4
gpt4 key购买 nike

我正在尝试使用 Keras 和 sklearn 优化神经网络的超参数。我正在结束 KerasClassifier(这是一个分类问题)。我正在尝试优化隐藏层的数量。我无法弄清楚如何用 keras 做到这一点(实际上我想知道如何设置函数 create_model 以最大化隐藏层的数量)谁能帮帮我?

我的代码(只是重要的部分):

## Import `Sequential` from `keras.models`
from keras.models import Sequential

# Import `Dense` from `keras.layers`
from keras.layers import Dense

def create_model(optimizer='adam', activation = 'sigmoid'):
# Initialize the constructor
model = Sequential()
# Add an input layer
model.add(Dense(5, activation=activation, input_shape=(5,)))
# Add one hidden layer
model.add(Dense(8, activation=activation))
# Add an output layer
model.add(Dense(1, activation=activation))
#compile model
model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=
['accuracy'])
return model
my_classifier = KerasClassifier(build_fn=create_model, verbose=0)# Create
hyperparameter space
epochs = [5, 10]
batches = [5, 10, 100]
optimizers = ['rmsprop', 'adam']
activation1 = ['relu','sigmoid']
# Create grid search
grid = RandomizedSearchCV(estimator=my_classifier,
param_distributions=hyperparameters) #inserir param_distributions

# Fit grid search
grid_result = grid.fit(X_train, y_train)
# Create hyperparameter options
hyperparameters = dict(optimizer=optimizers, epochs=epochs,
batch_size=batches, activation=activation1)
# View hyperparameters of best neural network
grid_result.best_params_

最佳答案

如果你想让隐藏层的数量成为超参数,你必须将它作为参数添加到你的 KerasClassifier build_fn 中,例如:

def create_model(optimizer='adam', activation = 'sigmoid', hidden_layers=1):
# Initialize the constructor
model = Sequential()
# Add an input layer
model.add(Dense(5, activation=activation, input_shape=(5,)))

for i in range(hidden_layers):
# Add one hidden layer
model.add(Dense(8, activation=activation))

# Add an output layer
model.add(Dense(1, activation=activation))
#compile model
model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=
['accuracy'])
return model

然后您可以通过将隐藏层的数量添加到字典中来优化隐藏层的数量,该字典将传递给 RandomizedSearchCVparam_distributions

还有一件事,您可能应该将用于输出层的 activation 与其他层分开。不同类别的激活函数适用于二元分类中使用的隐藏层和输出层。

关于python - 用keras Grid Search隐藏层数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47788799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com