
模型训练模式
|
151
model.fit(single_batch.repeat(),
validation_data=evalds,
...)
请注意,我们使用了
repeat()
,以便在对该单个批次的数据进行训练时不会耗尽数据。
这样可以确保我们在训练时一遍又一遍地使用这个批次。
其他所有内容(验证数据集、
模型代码、工程特征等)均保持不变。
建议不是选择一个任意的训练数据集样本,而是在一个较小的数据集中过拟
合,这个数据集的样本都经过验证以确保具有正确的标签。设计你的神经网
络结构,使其能够精确地学习这批数据,使损失为零。然后采用相同的网络
在完整的训练数据集上进行训练。
设计模式
12
:检查点
在检查点设计模式中,我们定期存储模型的完整状态。这些在训练进程中保存的模
型可以用作最终模型(在早停的情况下),也可以作为继续训练的起点(在机器故
障和微调的情况下)。
问题
模型越复杂(例如,神经网络具有的层和节点越多),有效训练模型所需的数据集
就越大。这是因为更复杂的模型往往具有更多的可调参数。随着模型大小的增加,
拟合一批训练样本所需的时间也会增加。随着数据大小的增加(假设批次大小是固
定的),批次的数量也会增加。因此,就计算复杂度而言,这种双重扩张意味着训
练将花费很长时间。
在撰写本文时,使用相对较小的数据集在张量处理单元(
Tensor Processing Unit
,
TPU
)
pod
上训练一个英语到德语的翻译模型大约需要花费
2
个小时(
https://oreil.ly/
vDRev ...