НачатьНачать бесплатно

Добавление слоёв в сеть

Вы уже знаете, как экспериментировать с более широкими сетями. В этом упражнении вы попробуете более глубокую сеть (с большим количеством скрытых слоёв).

За отправную точку снова используется базовая модель model_1. У неё 1 скрытый слой с 10 нейронами — её структура выведена в сводке. Вам нужно создать аналогичную сеть, но уже с 3 скрытыми слоями (по 10 нейронов в каждом).

Обучение обеих моделей займёт некоторое время, поэтому после запуска кода подождите несколько секунд, чтобы увидеть результаты.

Это упражнение является частью курса

Введение в глубокое обучение на Python

Посмотреть курс

Инструкции к упражнению

  • Создайте модель model_2, аналогичную model_1, но с 3 скрытыми слоями по 10 нейронов вместо одного.
    • Используйте input_shape, чтобы задать входную форму в первом скрытом слое.
    • Укажите активацию 'relu' для 3 скрытых слоёв и 'softmax' для выходного слоя, который должен содержать 2 нейрона.
  • Скомпилируйте model_2 так же, как предыдущие модели: с оптимизатором 'adam', функцией потерь 'categorical_crossentropy' и параметром metrics=['accuracy'].
  • Нажмите «Отправить ответ», чтобы обучить обе модели и сравнить их результаты!

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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