Zacznij terazZacznij za darmo

Dodawanie warstw do sieci

Wiesz już, jak eksperymentować z szerszymi sieciami. W tym ćwiczeniu wypróbujesz głębszą sieć – z większą liczbą ukrytych warstw.

Punktem wyjścia jest gotowy model bazowy o nazwie model_1. Ma on 1 ukrytą warstwę z 10 jednostkami. Podsumowanie struktury tego modelu jest wyświetlone poniżej. Zbudujesz podobną sieć, ale z 3 ukrytymi warstwami (każda nadal z 10 jednostkami).

Dopasowanie obu modeli zajmie chwilę – po uruchomieniu kodu poczekaj kilka sekund na wyniki.

To ćwiczenie jest częścią kursu

Wprowadzenie do uczenia głębokiego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj model o nazwie model_2, który jest podobny do model_1, ale zamiast 1 ukrytej warstwy ma 3 ukryte warstwy po 10 jednostek.
    • Użyj input_shape, aby określić kształt wejścia w pierwszej ukrytej warstwie.
    • Zastosuj aktywację 'relu' dla 3 ukrytych warstw i 'softmax' dla warstwy wyjściowej, która powinna mieć 2 jednostki.
  • Skompiluj model_2 tak samo jak poprzednie modele: użyj 'adam' jako optimizer, 'categorical_crossentropy' jako funkcji straty oraz metrics=['accuracy'].
  • Kliknij Prześlij odpowiedź, aby dopasować oba modele i zobaczyć, który daje lepsze wyniki!

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod