Ajuster les hyperparamètres du modèle
Il est temps de tester différents paramètres sur votre modèle et de voir comment il se comporte !
La fonction create_model() que vous avez construite dans l’exercice précédent est prête à être utilisée.
Comme l’ajustement de l’objet RandomizedSearchCV prendrait trop de temps, les résultats que vous obtiendriez sont affichés par la fonction show_results().
Vous pouvez essayer random_search.fit(X,y) dans la console pour vérifier que cela fonctionne une fois tout le reste en place, mais vous risquez de dépasser le temps imparti à l’exercice (copiez donc d’abord votre code si vous tentez l’expérience, sinon vous pourriez perdre votre progression !).
Vous n’avez pas besoin d’utiliser les paramètres optionnels epochs et batch_size lors de la création de votre objet KerasClassifier, puisque vous les passez déjà comme params à la recherche aléatoire, et que cela fonctionne ainsi.
Cet exercice fait partie du cours
Introduction au Deep Learning avec Keras
Instructions
- Importez
KerasClassifierdepuis les wrappers scikit_learn detensorflow.keras. - Utilisez votre fonction
create_modellors de l’instanciation de votreKerasClassifier. - Définissez
'relu'et'tanh'commeactivation, 32, 128 et 256 commebatch_size, 50, 100 et 200 commeepochs, et deslearning_ratede 0.1, 0.01 et 0.001. - Passez votre
modelconverti et lesparamschoisis lors de la construction de votre objetRandomizedSearchCV.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import KerasClassifier from tensorflow.keras scikit learn wrappers
from tensorflow.keras.wrappers.____ import ____
# Create a KerasClassifier
model = KerasClassifier(build_fn = ____)
# Define the parameters to try out
params = {'activation': [____, ____], 'batch_size': [____, ____, ____],
'epochs': [____, ____, ____], 'learning_rate': [____, ____, ____]}
# Create a randomize search cv object passing in the parameters to try
random_search = RandomizedSearchCV(____, param_distributions = ____, cv = KFold(3))
# Running random_search.fit(X,y) would start the search,but it takes too long!
show_results()