Lägga till lager i ett nätverk
Du har sett hur man experimenterar med bredare nätverk. I den här övningen provar du ett djupare nätverk med fler dolda lager.
Åter igen har du en basmodell som heter model_1 som startpunkt. Den har 1 dolt lager med 10 noder. En sammanfattning av modellens struktur skrivs ut. Du ska skapa ett liknande nätverk med 3 dolda lager, med 10 noder i varje lager.
Det tar en liten stund att träna båda modellerna, så du behöver vänta några sekunder på resultaten efter att du kört koden.
Den här övningen är en del av kursen
Introduktion till djupinlärning i Python
Övningsinstruktioner
- Definiera en modell kallad
model_2som liknarmodel_1, men med 3 dolda lager à 10 noder i stället för bara 1 dolt lager.- Använd
input_shapeför att ange indataformen i det första dolda lagret. - Använd
'relu'-aktivering för de 3 dolda lagren och'softmax'för utdatalagret, som ska ha 2 noder.
- Använd
- Kompilera
model_2på samma sätt som tidigare modeller: med'adam'somoptimizer,'categorical_crossentropy'som förlustfunktion ochmetrics=['accuracy']. - Klicka på 'Skicka in svar' för att träna båda modellerna och se vilken som ger bäst resultat!
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()