Как передать более одного аргумента в функцию, которая создает нейронную сеть, с помощью KerasClassfier () и GridSearchCV () - PullRequest
0 голосов
/ 19 января 2020

Мой вопрос: как я могу передать аргументы vocab_size, num_tags, length в сетевую функцию? Поскольку я видел только при использовании KerasClassifier () и GridSearchCV (), мы можем передавать только «оптимизаторы» в качестве аргумента.

Когда я не использую KerasClassfier () и GridSearchCV (), мне это нравится.

model = network(vocab_size, num_tags, length)

Я хочу передать все эти аргументы, но хочу использовать KerasClassifier () и GridSearchCV ().

Любая ПОМОЩЬ будет Сильно оценена.

Это мой код, поэтому далеко:

def network(vocab_size, num_tags, length, optimizers):

    model = Sequential()
    model.add(Embedding(vocab_size, 100, weights=[embedding_matrix], input_length=length, trainable=True))
    # model.add(LSTM(50, recurrent_dropout=.20))

    model.add(Dense(8, activation='relu')) 
    # model.add(Dense(200, activation='relu'))
    model.add(Dropout(.40))
    # model.add(Flatten())
    model.add(Dense(50, activation='relu'))
    # model.add(Dropout(.3))
    model.add(Flatten())
    model.add(Dense(num_tags, activation='sigmoid'))

    #model compile 
    model.compile(optimizer=optimizers, loss='binary_crossentropy', metrics=['accuracy'])
    return model 

num_tags = 8

#create hyperparameter search space 
epochs = [25, 50]
batches = [5, 10, 100]
optimizers = ['rmsprop', 'adam']

neural_network = KerasClassifier(build_fn=network, verbose = 0)

#create hyperparamter options 
hyperparamters = dict(optimizers=optimizers, epochs=epochs, batch_size = batches )

#conduct gridseach cv 
#create grid search 
grid = GridSearchCV(estimator=neural_network, cv = 10, param_grid=hyperparamters)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...