开始使用免费开始使用

我们需要更多数据吗?

现在来检查一下,您构建的 digits 数据集model 是否会从更多训练样本中受益!

为尽量简化代码,以下内容已初始化并可直接使用:

  • 您刚构建的 model
  • X_trainy_trainX_testy_test
  • 使用 model.get_weights() 保存下来的模型初始权重:initial_weights
  • 预定义的训练规模列表:training_sizes
  • 基于损失监控的预定义早停回调:early_stop
  • 两个用于存储评估结果的空列表:train_accstest_accs

请在不同的训练规模上训练您的模型,并在 X_test 上评估结果。 最后使用 plot_results() 绘制结果图。

本练习的完整代码可在幻灯片中查看!

本练习是课程的一部分

Keras 深度学习入门

查看课程

练习说明

  • 按循环中当前评估的 size 获取相应比例的训练数据。
  • 使用 set_weights() 将模型权重重置为 initial_weights,并在该比例的训练数据上训练模型,回调使用 early_stop
  • 评估并分别存储该训练子集与测试集的准确率。
  • 调用 plot_results(),传入每个训练规模对应的训练集与测试集准确率。

交互式实操练习

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

for size in training_sizes:
  	# Get a fraction of training data (we only care about the training data)
    X_train_frac, y_train_frac = X_train[:size], y_train[:size]

    # Reset the model to the initial weights and train it on the new training data fraction
    model.set_weights(____)
    model.fit(X_train_frac, y_train_frac, epochs = 50, callbacks = [early_stop])

    # Evaluate and store both: the training data fraction and the complete test set results
    train_accs.append(model.evaluate(____, ____)[1])
    test_accs.append(model.evaluate(____, ____)[1])
    
# Plot train vs test accuracies
plot_results(____, ____)
编辑并运行代码