在训练神经网络中混洗数据批次

Shuffling batches of data in training neural networks

我有 6.5 GB 的训练数据用于我的 GRU 网络。我打算分开训练时间,即暂停和恢复训练,因为我使用的是笔记本电脑。我假设使用整个 6.5 GB 来训练我的神经网络需要几天时间,因此,我将暂停训练,然后在其他时间再次恢复。

这是我的问题。如果我将训练数据批次打乱,神经网络会记住哪些数据已用于训练吗?

请注意,我使用的是 tf.train.Saver().saveglobal_step 参数。

非常感谢您!

我建议您在某个时期保存您的模型,假设您有 80 个时期,明智的做法是每 20 个时期 (20,40,60) 保存您的模型,但这同样取决于容量你的笔记本电脑,原因是在一个时代,你的网络会看到所有的数据集(训练集)。如果你的整个数据集不能在一个时代处理,我建议你从你的整个数据集中随机抽样什么是训练 set.The 洗牌的全部要点是让网络对整个数据集进行一些泛化,通常是在批处理或选择训练数据集上完成,或者开始新的训练 epoch.As你的主要问题,在训练和 resuming.Shuffling 批次时洗牌绝对可以确保梯度是沿着批次而不是在一个图像上计算的