【问题标题】:Shuffling batches of data in training neural networks在训练神经网络中洗牌数据批次
【发布时间】:2018-01-07 07:03:00
【问题描述】:

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

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

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

非常感谢您!

【问题讨论】:

    标签: machine-learning tensorflow neural-network dataset recurrent-neural-network


    【解决方案1】:

    我建议你在某个时期保存你的模型,假设你有 80 个时期,明智的做法是在每 20 个时期(20、40、60)保存你的模型,但这又取决于你的容量笔记本电脑,原因是在一个时期,您的网络将看到所有数据集(训练集)。如果您的整个数据集无法在一个时期内处理,我建议您从整个数据集中随机抽样成为训练集。改组的重点是让网络对整个数据集进行一些泛化,通常在批处理或选择训练数据集或开始新的训练时期完成。至于你的主要问题,它明确可以在训练和恢复时对 bacthes 进行洗牌。洗牌批次可确保沿批次而不是一张图像计算梯度

    【讨论】:

    • 感谢您的回复。顺便说一句,我要训练循环神经网络来对序列进行分类,而不是训练 CNN 来对图像进行分类。它也适用,对吗?
    • 不确定 rnn,但我认为如果数据涉及任何类型的序列,那么它的洗牌肯定是不行的,这里有另一个有趣的讨论 stats.stackexchange.com/questions/40638/…
    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2017-04-02
    • 2010-11-20
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多