GridSearchCV é uma ótima maneira de testar e otimizar hiperparâmetros automaticamente. Eu o uso com o TensorFlowEstimator para otimizar o learning_rate, batch_size, ... etc. Seria uma ótima adição se eu também pudesse usá-lo para personalizar outros parâmetros no meu modelo personalizado.
Por exemplo, digamos que eu tenha um modelo personalizado com uma convnet e queira otimizar o valor do passo. Este pseudo código explica o que estou tentando alcançar.
Eu usei uma entrada "params" personalizada para a função de modelo apenas como exemplo, para não implicar que essa seja necessariamente a maneira correta de implementar esse recurso.
# My custom model.
# Feature request: New params dict with values filled by GridSearchCV
def cnn_model(X, Y, params):
stride = params['stride']
... custom model definition here ...
# Create the Convnet classifier
cnn_classifier = learn.TensorFlowEstimator(model_fn=cnn_model)
# Grid search on different stride values.
parameters = {'stride': [1, 2, 3],}
grid_searcher = GridSearchCV(cnn_classifier, parameters)
grid_searcher.fit(X, Y)
Está na nossa lista de TODO. Apenas tentando descobrir como fazer isso bem para ter uma maneira geral de passar hiperparâmetros para os modelos.
@ilblackdragon Alguma atualização sobre isso?
A função de modelo tem o argumento params
. TensorFlowEstimator
está obsoleto, use Estimator
que aceita o argumento params
. Isso deve funcionar agora, por favor, reabra se isso não acontecer.
Comentários muito úteis
@ilblackdragon Alguma atualização sobre isso?