Ajuster les hyperparamètres du modèle
C'est le moment d'essayer différents paramètres sur votre modèle et de voir comment il se comporte!
La fonction create_model() que vous avez construite à 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 pourriez exécuter vous-même random_search.fit(X,y) dans la console pour vérifier que tout fonctionne une fois le reste en place, mais vous risquez de dépasser la limite de temps de l'exercice (donc copiez votre code avant d'essayer, 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 transmettez déjà comme params à la recherche aléatoire et que cela fonctionne ainsi.
Cette activité fait partie du cours
Introduction à Deep Learning avec Keras
Instructions de l’exercice
- Importez
KerasClassifierà partir des enveloppes 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 pour lesepochs, et unlearning_ratede 0.1, 0.01 et 0.001. - Transmettez votre
modelconverti et lesparamschoisis lors de la création de votre objetRandomizedSearchCV.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()