Aan de slagGa gratis aan de slag

Experimenteren met bredere netwerken

Nu weet je alles wat je nodig hebt om met verschillende modellen te gaan experimenteren!

Een model genaamd model_1 is alvast geladen. In de IPython-shell zie je een samenvatting van dit model. Dit is een relatief klein netwerk, met slechts 10 units in elke verborgen laag.

In deze oefening maak je een nieuw model, model_2, dat lijkt op model_1, behalve dat het 100 units in elke verborgen laag heeft.

Nadat je model_2 hebt gemaakt, worden beide modellen getraind en verschijnt er een grafiek die voor elk epoch de verliesscore van beide modellen toont. We hebben het argument verbose=False toegevoegd aan de fit-opdrachten om minder updates te printen, omdat je hier grafisch naar kijkt in plaats van als tekst.

Omdat je twee modellen traint, duurt het even voordat je de Resultaten ziet nadat je op uitvoeren hebt gedrukt, dus heb een beetje geduld.

Deze oefening maakt deel uit van de cursus

Introductie tot Deep Learning in Python

Cursus bekijken

Oefeninstructies

  • Maak model_2 om model_1 te repliceren, maar gebruik 100 nodes in plaats van 10 voor de eerste twee Dense-lagen die je toevoegt met de 'relu'-activatie. Gebruik 2 nodes voor de Dense-uitvoerlaag met 'softmax' als activation.
  • Compileer model_2 zoals je bij eerdere modellen hebt gedaan: met 'adam' als optimizer, 'categorical_crossentropy' voor de loss, en metrics=['accuracy'].
  • Klik op "Antwoord verzenden" om beide modellen te trainen en te zien welke betere resultaten geeft! Let op het keywordargument verbose=False in model.fit(): dit print minder updates, omdat je de modellen grafisch beoordeelt in plaats van via tekst.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
Code bewerken en uitvoeren