Experimenty se širšími sítěmi
Teď už víš vše, co potřebuješ k experimentování s různými modely!
Model model_1 je předem načtený. Jeho shrnutí si můžeš prohlédnout v IPython Shellu. Jde o relativně malou síť s pouhými 10 uzly v každé skryté vrstvě.
V tomto cvičení vytvoříš nový model model_2, který je podobný modelu model_1, ale má 100 uzlů v každé skryté vrstvě.
Jakmile model_2 vytvoříš, oba modely se natrénují a zobrazí se graf znázorňující hodnotu ztrátové funkce obou modelů v každé epoše. Do příkazů pro trénování jsme přidali argument verbose=False, aby se vypisovalo méně průběžných informací – výsledky totiž budeš sledovat graficky, ne jako text.
Protože se trénují dva modely, po spuštění kódu chvíli počkej, než se výstupy zobrazí.
Toto cvičení je součástí kurzu
Úvod do deep learningu v Pythonu
Pokyny k cvičení
- Vytvoř
model_2jako replikumodel_1, ale pro první dvě vrstvyDenses aktivací'relu'použij místo10uzlů100. Pro výstupní vrstvuDensepoužij2uzly a jakoactivationnastav'softmax'. - Zkompiluj
model_2stejně jako předchozí modely: jakooptimizerpoužij'adam', pro ztrátovou funkci'categorical_crossentropy'a nastavmetrics=['accuracy']. - Klikni na Submit Answer – oba modely se natrénují a uvidíš, který podává lepší výsledky! Všimni si klíčového argumentu
verbose=Falsevmodel.fit(): omezuje množství vypisovaných informací, protože modely budeš hodnotit graficky, ne prostřednictvím textu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()