def create_model(input_shape, lr):
model = Sequential()
model.add(Dense(20, input_shape, 'relu'))
opt = optimizers.Adam(lr)
model.compile(loss='binary_crossentropy', optimizer=opt)
return model
clf = KerasClassifier(build_fn= create_model, input_shape=10,batch_size=25)
list_of_learning_rates = [1e-3,1e-2]
list_of_epochs = [50,100]
gridSearch(clf, list_of_learning_rates, list_of_epochs)
由于特定原因,我编写了自己的网格搜索代码,并且它以一种我必须初始化我正在使用的分类器并将分类器传递给网格搜索函数的方式编写,并带有参数列表。示例如上。如何在gridSearch
函数中专门设置epochs
和lr
参数?我正在考虑使用functools.partial
但我不确定如何使用,类似于:functools.partial(clf, lr=list_of_learning_rates[0], epcohs=list_of_epochs[0])
,但clf
不是一个函数,所以这不起作用。
我找到了问题的答案。我可以使用clf
的set_params()
功能。例如,d={'epochs':10, 'lr':1e-3}
,我可以运行以下命令来设置参数:clf.set_params(**d)
。