开始使用免费开始使用

尝试更宽的网络

现在您已经掌握了开始尝试不同模型所需的一切!

一个名为 model_1 的模型已预先加载。您可以在 IPython Shell 中看到它的摘要输出。这是一个相对较小的网络,每个隐藏层只有 10 个单元。

在本练习中,您将创建一个名为 model_2 的新模型。它与 model_1 类似,但每个隐藏层有 100 个单元。

创建 model_2 之后,将对两个模型进行拟合,并显示一个图表,展示每个 epoch 上两者的损失曲线。我们在拟合命令中加入了参数 verbose=False,以减少文本更新,因为您将通过图形而不是文本来查看结果。

由于要拟合两个模型,点击运行后显示输出需要一点时间,请耐心等待。

本练习是课程的一部分

Python 深度学习入门

查看课程

练习说明

  • 创建 model_2,使其结构与 model_1 相同,但将前两个使用 'relu' 激活函数的 Dense 层的节点数从 10 改为 100。输出层使用 2 个节点的 Dense 层,并将 activation 设为 'softmax'
  • 按之前模型的方式编译 model_2optimizer 使用 'adam'loss 使用 'categorical_crossentropy',并设置 metrics=['accuracy']
  • 点击 "Submit Answer" 以拟合两个模型并可视化哪个效果更好!注意 model.fit() 中的关键字参数 verbose=False:这会减少更新信息的打印,因为您将通过图形而非文本来评估模型。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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()
编辑并运行代码