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

Эксперименты с более широкими сетями

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

Модель model_1 уже загружена. Её сводку можно посмотреть в IPython Shell. Это относительно небольшая сеть: в каждом скрытом слое по 10 нейронов.

В этом упражнении вы создадите новую модель model_2, похожую на model_1, но с 100 нейронами в каждом скрытом слое.

После создания model_2 обе модели будут обучены, и вы увидите график, на котором отображается значение функции потерь для каждой модели на каждой эпохе. В командах обучения мы указали аргумент verbose=False, чтобы сократить количество выводимых сообщений: результаты удобнее оценивать визуально.

Поскольку обучаются две модели, после нажатия кнопки запуска потребуется немного подождать — наберитесь терпения.

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

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

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

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

  • Создайте model_2 по образцу model_1, но используйте 100 нейронов вместо 10 для первых двух слоёв Dense с активацией 'relu'. Для выходного слоя Dense укажите 2 нейрона и активацию 'softmax'.
  • Скомпилируйте model_2 так же, как предыдущие модели: оптимизатор 'adam', функция потерь 'categorical_crossentropy', параметр 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()
Редактировать и запускать код