【问题标题】:Keras: how to mutate data for each epochKeras:如何改变每个时期的数据
【发布时间】:2018-04-01 20:52:48
【问题描述】:

我正在尝试通过向我的原始数据添加噪声和随机突变来减少过度拟合。

我有一个改变训练数据的函数

x, y = generate_data()

我希望每个 epoch 都调用它并在新数据上训练我的模型。希望是减少过拟合。

history = model.fit(x, y, epochs=100, batch_size=64)

为每个新纪元更改数据的最佳方法是什么?

【问题讨论】:

    标签: python deep-learning keras


    【解决方案1】:

    只是猜测。试试:

    for _ in range(num_epochs):
        x, y = generate_data()
        history = model.fit(x, y, epochs=1, batch_size=64)
    

    【讨论】:

      【解决方案2】:

      model.fit 有一个 shuffle 参数,默认值为 True。所以它会在每个 epoch 打乱样本。

      def fit(self, x, y, batch_size=32, epochs=10, verbose=1, callbacks=None,
                  validation_split=0., validation_data=None, shuffle=True,
                  class_weight=None, sample_weight=None, initial_epoch=0, **kwargs)
      

      【讨论】:

      • 这只会随机化数据的顺序。我想每次都改变数据
      • 只要保持集合平衡,for _ in range(num_epochs): x, y = generate_data() history = model.fit(x, y, epochs=1, batch_size=64) 可能会起作用,但我相信您的请求会导致模型的学习过程延迟。它甚至可能不会收敛。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 2017-12-09
      • 2020-10-10
      相关资源
      最近更新 更多