ПочатиПочніть безкоштовно

Експерименти з ширшими мережами

Тепер ви знаєте все необхідне, щоб почати експериментувати з різними моделями!

Модель під назвою model_1 уже завантажено. Ви можете побачити її зведення (summary) в оболонці IPython. Це відносно невелика мережа, з лише 10 одиницями в кожному прихованому шарі.

У цій вправі ви створите нову модель model_2, схожу на model_1, але з 100 одиницями в кожному прихованому шарі.

Після створення model_2 обидві моделі буде навчено, і з'явиться графік, що показує значення функції втрат для обох моделей на кожній епосі. Ми додали аргумент verbose=False у команди навчання, щоб виводити менше оновлень, адже ви розглядатимете їх на графіку, а не як текст.

Оскільки навчаються дві моделі, після натискання запуску знадобиться трохи часу, щоб побачити результати, тож наберіться терпіння.

Ця вправа є частиною курсу

Вступ до Deep Learning у Python

Переглянути курс

Інструкції до вправи

  • Створіть model_2, відтворивши model_1, але використайте 100 вузлів замість 10 для перших двох шарів Dense з активацією 'relu'. Для вихідного шару Dense використайте 2 вузли з активацією 'softmax'.
  • Скомпілюйте model_2, як і попередні моделі: використайте 'adam' як optimizer, 'categorical_crossentropy' як функцію втрат (loss) і metrics=['accuracy'].
  • Натисніть "Надіслати відповідь", щоб навчити обидві моделі та побачити, яка дає кращі результати! Зверніть увагу на іменований аргумент verbose=False у model.fit(): він зменшує кількість текстових оновлень, адже ви оцінюватимете моделі графічно, а не за текстом.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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()
Редагувати та запускати код