Experimentează cu rețele mai largi
Acum știi tot ce îți trebuie pentru a experimenta cu diferite modele!
Un model numit model_1 a fost preîncărcat. Poți vedea un rezumat al acestui model afișat în Shell-ul IPython. Este o rețea relativ mică, cu doar 10 unități în fiecare strat ascuns.
În acest exercițiu vei crea un nou model numit model_2, similar cu model_1, cu deosebirea că are 100 de unități în fiecare strat ascuns.
După ce creezi model_2, ambele modele vor fi antrenate, iar un grafic care arată scorul de pierdere al fiecărui model la fiecare epocă va fi afișat. Am adăugat argumentul verbose=False în comenzile de antrenare pentru a reduce numărul de actualizări afișate, deoarece vei analiza rezultatele grafic, nu ca text.
Deoarece antrenezi două modele, poate dura câteva momente până când vei vedea rezultatele după ce apeși run, așa că ai puțină răbdare.
Acest exercițiu face parte din cursul
Introducere în Deep Learning în Python
Instrucțiuni pentru exercițiu
- Creează
model_2ca replică a luimodel_1, dar folosește100de noduri în loc de10pentru primele două straturiDensepe care le adaugi cu activarea'relu'. Folosește2noduri pentru stratul de ieșireDensecu'softmax'caactivation. - Compilează
model_2la fel cum ai procedat cu modelele anterioare: folosind'adam'caoptimizer,'categorical_crossentropy'pentru pierdere șimetrics=['accuracy']. - Apasă Trimite răspunsul pentru a antrena ambele modele și a vizualiza care oferă rezultate mai bune! Observă argumentul cu cuvânt cheie
verbose=Falsedinmodel.fit(): acesta reduce numărul de actualizări afișate, deoarece vei evalua modelele grafic, nu prin text.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()