过拟合检测
在本练习中,我们将使用原始手语字母数据集中的一个小子集。小样本再配合参数众多的模型,通常会导致过拟合。也就是说,模型会记住每个样本所属的类别,而不是学习能泛化到更多样本的特征。
您将通过以下方式检测过拟合:检查验证集的损失是否明显高于训练集的损失,以及在继续训练时是否进一步上升。当样本很小且学习率较高时,模型往往难以收敛到最优解。您将为优化器设置较低的学习率,以便更容易识别过拟合。
注意,keras 已从 tensorflow 导入。
本练习是课程的一部分
Python 中的 TensorFlow 入门
练习说明
- 在
keras中定义一个名为model的顺序模型。 - 添加第一层全连接层,包含 1024 个节点,
relu激活函数,输入形状为 (784,)。 - 将学习率设置为 0.001。
- 将
fit()操作设置为对完整样本迭代 50 次,并使用 50% 的样本用于验证。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Define sequential model
____
# Define the first layer
____
# Add activation function to classifier
model.add(keras.layers.Dense(4, activation='softmax'))
# Finish the model compilation
model.compile(optimizer=keras.optimizers.Adam(lr=____),
loss='categorical_crossentropy', metrics=['accuracy'])
# Complete the model fit operation
model.fit(sign_language_features, sign_language_labels, epochs=____, validation_split=____)