Rilevamento dell'overfitting
In questo esercizio lavoreremo con un piccolo sottoinsieme degli esempi del dataset originale delle lettere della lingua dei segni. Un campione ridotto, unito a un modello con molti parametri, porta in genere all'overfitting. Questo significa che il tuo modello memorizzerà semplicemente la classe di ogni esempio invece di individuare caratteristiche che si generalizzano a molti esempi.
Rileverai l'overfitting verificando se la loss sul campione di validazione è significativamente più alta della loss sul campione di addestramento e se aumenta con ulteriore training. Con un campione piccolo e un learning rate elevato, il modello farà fatica a convergere a un ottimo. Imposterai un learning rate basso per l'ottimizzatore, il che renderà più semplice identificare l'overfitting.
Nota che keras è stato importato da tensorflow.
Questo esercizio fa parte del corso
Introduzione a TensorFlow in Python
Istruzioni dell'esercizio
- Definisci un modello sequenziale in
keraschiamatomodel. - Aggiungi un primo livello denso con 1024 nodi, attivazione
relue una forma di input (784,). - Imposta il learning rate a 0.001.
- Imposta l'operazione
fit()per iterare sull'intero campione 50 volte e usare il 50% del campione per la validazione.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Define sequential model
____
# Define the first layer
____
# Add activation function to classifier
model.add(keras.layers.Dense(4, activation='softmax'))
# Finish the model compilation
model.compile(optimizer=keras.optimizers.Adam(lr=____),
loss='categorical_crossentropy', metrics=['accuracy'])
# Complete the model fit operation
model.fit(sign_language_features, sign_language_labels, epochs=____, validation_split=____)