Додавання шарів до мережі
Ви вже бачили, як експериментувати з ширшими мережами. У цій вправі ви спробуєте глибшу мережу (більше прихованих шарів).
Знову маєте базову модель model_1 як відправну точку. Вона має 1 прихований шар з 10 одиницями. Ви бачите зведення структури цієї моделі. Ви створите подібну мережу з 3 прихованими шарами (і надалі по 10 одиниць у кожному шарі).
Навчання обох моделей знову займе трохи часу, тож після запуску коду доведеться кілька секунд зачекати на результати.
Ця вправа є частиною курсу
Вступ до Deep Learning у Python
Інструкції до вправи
- Створіть модель
model_2, подібну доmodel_1, але з 3 прихованими шарами по 10 одиниць замість лише 1 прихованого шару.- Використайте
input_shape, щоб задати форму входу в першому прихованому шарі. - Задайте активацію
'relu'для 3 прихованих шарів і'softmax'для вихідного шару, який має містити 2 одиниці.
- Використайте
- Скомпілюйте
model_2, як і попередні моделі: використайте'adam'якoptimizer,'categorical_crossentropy'як функцію втрат, іmetrics=['accuracy']. - Натисніть 'Submit Answer', щоб навчити обидві моделі та побачити, яка з них дає кращі результати!
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()