1. ホーム
  2. machine-learning

[解決済み] kerasのtrain_on_batch()の使い道は?

2022-03-03 10:07:51

質問

どのように train_on_batch() とは異なります。 fit() ? を使うべきケースは? train_on_batch() ?

解決方法は?

この質問に対しては 主筆からの簡単な回答 :

fit_generator を使用すると、検証データ用のジェネレータを使用することができます。 もあります。一般に、私は fit_generator しかし train_on_batch も問題なく動作します。これらの方法は、あくまで便宜上 正しい方法はありません。

train_on_batch は、固定バッチサイズに関係なく、提供されたサンプルのコレクションに基づいて、明示的に重みを更新することができます。これは,明示的なサンプルの集合に基づいて学習を行いたい場合に使用します.従来のトレーニングセットの複数のバッチに対して独自の反復処理を行う場合にも,この方法を用いることができます. fit または fit_generator を使用してバッチを反復処理する方が簡単でしょう。

を使用するとよい場合があります。 train_on_batch は、1つの新しいサンプルバッチで事前学習されたモデルを更新する場合です。例えば,すでにモデルをトレーニングしてデプロイした後,しばらくして今まで使われなかった新しいトレーニングサンプルを受け取ったとします.この場合 train_on_batch を使えば、それらのサンプルに対してのみ、既存のモデルを直接更新することができます。他の方法でもこれは可能ですが、むしろ明示的に train_on_batch この場合

このような特別な場合(異なるトレーニングバッチで自分のカーソルを維持する教育的な理由がある場合、または特別なバッチでセミオンライントレーニングを更新する場合)を除いては、おそらく、常に fit (メモリに収まるデータの場合)または fit_generator (ジェネレータとしてデータのバッチをストリーミングする場合)。