Мой вопрос: как я могу передать аргументы 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)