15.6.5 训练和评价模型

与scikit-learn的模型类似,我们通过调用fit方法来训练Keras模型:

▪ 与scikit-learn一样,前两个参数是训练数据和分类目标标签。

epochs指定模型应处理整组训练数据的次数。正如前面提到的,神经网络是迭代训练的。

batch_size指定每个epoch期间单次处理的样本数。大多数模型指定为32~512的2的幂次。若batch_size太大,则会降低模型准确性[1],所以选择了64,也可以尝试不同的值来查看它们是如何影响模型性能的。

▪ 通常需要使用一些样本来验证模型,如果指定了验证数据,则每个epoch结束之后,将使用模型对验证集进行预测并显示验证损失和准确性,可以通过研究这些值来调整网络层和fit方法的超参数,或者更改模型的层组成。在这里,我们使用validation_split参数来指示保留最后10%(0.1)的训练样本进行模型验证[2],共6,000个验证样本。如果有单独的验证数据,则可以使用validation_data参数(如15.9节所示)来指定包含这些样本和目标标签数组的元组。通常,最好随机选择验证样本,利用scikit-learn的train_test_split函数(将在本章稍后介绍),然后使用validation_data参数传递随机选择的数据。

在以下输出中,我们以粗体突出显示了训练准确性(acc)和验证准确性(val_acc):

在15.7节中,我们将介绍TensorBoard—一个TensorFlow工具,用于从深度学习模型中可视化数据,特别是,我们将查看训练和验证准确性以及损失值是如何通过每个epoch发生变化的。在15.8节中,我们将演示Andrej ...

Get Python程序设计:人工智能案例实践 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.