Ottimizzare i parametri del modello
È il momento di provare diversi parametri sul tuo modello e vedere come si comporta!
La funzione create_model() che hai creato nell'esercizio precedente è pronta all'uso.
Dato che eseguire il fitting dell'oggetto RandomizedSearchCV richiederebbe troppo tempo, i risultati che otterresti sono stampati nella funzione show_results().
Puoi provare tu stesso random_search.fit(X,y) nella console per verificare che funzioni dopo aver costruito tutto il resto, ma probabilmente l'esercizio andrà in timeout (quindi copia prima il tuo codice se vuoi provarci, altrimenti potresti perdere i progressi!).
Non hai bisogno di usare i parametri opzionali epochs e batch_size quando costruisci il tuo oggetto KerasClassifier, perché li stai passando come params alla ricerca casuale e questo è già sufficiente.
Questo esercizio fa parte del corso
Introduzione al Deep Learning con Keras
Istruzioni dell'esercizio
- Importa
KerasClassifierdai wrapper scikit_learn ditensorflow.keras. - Usa la tua funzione
create_modelquando istanzi il tuoKerasClassifier. - Imposta
'relu'e'tanh'comeactivation, 32, 128 e 256 comebatch_size, 50, 100 e 200 comeepochs, elearning_ratepari a 0.1, 0.01 e 0.001. - Passa il tuo
modelconvertito e iparamsscelti quando costruisci l'oggettoRandomizedSearchCV.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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()