Inizia subitoInizia gratis

Aggiungere livelli a una rete

Hai visto come sperimentare con reti più larghe. In questo esercizio proverai una rete più profonda (più livelli nascosti).

Ancora una volta, hai un modello di base chiamato model_1 da usare come punto di partenza. Ha 1 livello nascosto con 10 unità. Puoi vedere un riepilogo della struttura del modello stampato a schermo. Creerai una rete simile con 3 livelli nascosti (mantenendo 10 unità in ciascun livello).

Ci vorrà di nuovo un momento per addestrare entrambi i modelli, quindi dovrai aspettare qualche secondo per vedere i risultati dopo aver eseguito il codice.

Questo esercizio fa parte del corso

Introduzione al Deep Learning in Python

Visualizza corso

Istruzioni dell'esercizio

  • Specifica un modello chiamato model_2 simile a model_1, ma con 3 livelli nascosti da 10 unità invece di un solo livello nascosto.
    • Usa input_shape per specificare la forma dell'input nel primo livello nascosto.
    • Usa l'attivazione 'relu' per i 3 livelli nascosti e 'softmax' per il livello di output, che dovrebbe avere 2 unità.
  • Compila model_2 come hai fatto con i modelli precedenti: usando 'adam' come optimizer, 'categorical_crossentropy' per la loss e metrics=['accuracy'].
  • Premi "Invia risposta" per addestrare entrambi i modelli e visualizzare quale ottiene risultati migliori!

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# The input shape to use in the first hidden layer
input_shape = (n_cols,)

# Create the new model: model_2
model_2 = ____

# Add the first, second, and third hidden layers
____
____
____

# Add the output layer
____

# Compile model_2
____

# Fit model 1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.4, verbose=False)

# Fit model 2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.4, 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