2017-10-20 4 views
0

元のデータにノイズやランダムな突然変異を追加することでオーバーフィットを減らそうとしています。ケラス:各エポックのデータを変更する方法

は私がトレーニングデータ

x, y = generate_data() 

私はそれを呼び出すと、新しいデータに私のモデルを訓練するために、各エポックを希望を変異させる機能を持っています。希望は過大適合を減らすことです。

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

新エポックごとにデータを変更する最も良い方法は何ですか?

答えて

1

まあまあです。試してみてください:

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

model.fitにはシャッフル引数があり、デフォルト値はTrueです。それで、各エポックでサンプルをシャッフルします。

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) 
+0

これは、データの順序をランダム化します。私は毎回データを変更したいと思っています – Karolis

+0

あなたのセットをバランスよく保つ限り、範囲内で(num_epochs): x、y = generate_data() history = model.fit(x、y、epochs = 1 、batch_size = 64) 'が動作するかもしれませんが、あなたの要求がモデルの学習プロセスを遅らせる原因になると思います。収束しないことさえあるかもしれません。 – TheWho

関連する問題