Inizia subitoInizia gratis

Sperimentare con reti più larghe

Ora hai tutto ciò che ti serve per iniziare a sperimentare con modelli diversi!

Un modello chiamato model_1 è stato pre-caricato. Puoi vedere un riepilogo di questo modello stampato nella IPython Shell. È una rete relativamente piccola, con solo 10 unità in ciascun livello nascosto.

In questo esercizio creerai un nuovo modello chiamato model_2, simile a model_1, ma con 100 unità in ciascun livello nascosto.

Dopo aver creato model_2, entrambi i modelli verranno addestrati e verrà mostrato un grafico con il valore della loss di entrambi i modelli a ogni epoca. Abbiamo aggiunto l’argomento verbose=False nei comandi di training per stampare meno aggiornamenti, dato che li osserverai graficamente invece che come testo.

Poiché stai addestrando due modelli, ci vorrà un momento per vedere i risultati dopo aver premuto esegui: abbi pazienza.

Questo esercizio fa parte del corso

Introduzione al Deep Learning in Python

Visualizza corso

Istruzioni dell'esercizio

  • Crea model_2 per replicare model_1, ma usa 100 nodi invece di 10 per i primi due livelli Dense che aggiungi con attivazione 'relu'. Usa 2 nodi per il livello di output Dense con 'softmax' come activation.
  • Compila model_2 come fatto per i modelli precedenti: usa 'adam' come optimizer, 'categorical_crossentropy' per la loss e metrics=['accuracy'].
  • Premi "Invia risposta" per addestrare entrambi i modelli e visualizzare quale dà risultati migliori! Nota l’argomento keyword verbose=False in model.fit(): stampa meno aggiornamenti, perché valuterai i modelli graficamente invece che tramite testo.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# Define early_stopping_monitor
early_stopping_monitor = EarlyStopping(patience=2)

# Create the new model: model_2
model_2 = ____

# Add the first and second layers
____.____(____(____, ____=____, input_shape=input_shape))
____

# Add the output layer
____

# Compile model_2
____

# Fit model_1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)

# Fit model_2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)

# Create the plot
plt.plot(model_1_training.history['val_loss'], 'r', model_2_training.history['val_loss'], 'b')
plt.xlabel('Epochs')
plt.ylabel('Validation score')
plt.show()
Modifica ed esegui il codice