GridSearchCV est un excellent moyen de tester et d'optimiser automatiquement les hyper-paramètres. Je l'utilise avec TensorFlowEstimator pour optimiser learning_rate, batch_size, ...etc. Ce serait un excellent ajout si je pouvais également l'utiliser pour personnaliser d'autres paramètres dans mon modèle personnalisé.
Par exemple, supposons que j'ai un modèle personnalisé avec un convnet et que je souhaite optimiser la valeur de la foulée. Ce pseudo-code explique ce que j'essaie de réaliser.
J'ai utilisé une entrée "params" personnalisée pour la fonction de modèle à titre d'exemple, sans pour autant impliquer que c'est nécessairement la bonne façon d'implémenter cette fonctionnalité.
# 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)
C'est sur notre liste TODO. J'essaie juste de comprendre comment le faire correctement pour avoir un moyen général de transmettre des hyper-paramètres dans les modèles.
@ilblackdragon Une mise à jour à ce sujet ?
La fonction de modèle a l'argument params
. TensorFlowEstimator
est obsolète, veuillez utiliser Estimator
qui prend l'argument params
. Cela devrait fonctionner maintenant, veuillez rouvrir si ce n'est pas le cas.
Commentaire le plus utile
@ilblackdragon Une mise à jour à ce sujet ?