Experimentera med bredare nätverk
Nu kan du börja experimentera med olika modeller!
En modell som heter model_1 har förinslästs. Du kan se en sammanfattning av den i IPython Shell. Det är ett relativt litet nätverk med bara 10 noder i varje dolt lager.
I den här övningen skapar du en ny modell kallad model_2 som liknar model_1, men med 100 noder i varje dolt lager.
När du har skapat model_2 tränas båda modellerna, och ett diagram visas med bådas förlustpoäng för varje epok. Vi har lagt till argumentet verbose=False i träningskommandona för att minska mängden utdata, eftersom du utvärderar resultaten grafiskt i stället för som text.
Eftersom två modeller tränas kan det ta en stund innan utdata visas när du kör koden – ha tålamod.
Den här övningen är en del av kursen
Introduktion till djupinlärning i Python
Övningsinstruktioner
- Skapa
model_2som en kopia avmodel_1, men använd100noder i stället för10för de första tvåDense-lagren med aktiveringen'relu'. Använd2noder förDense-utdatalagret med'softmax'somactivation. - Kompilera
model_2på samma sätt som tidigare modeller: använd'adam'somoptimizer,'categorical_crossentropy'för förlusten ochmetrics=['accuracy']. - Klicka på Skicka in svar för att träna båda modellerna och se vilken som ger bäst resultat! Lägg märke till nyckelordsargumentet
verbose=Falseimodel.fit(): det minskar mängden utdata, eftersom du utvärderar modellerna grafiskt i stället för via text.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()