---
# System prepended metadata

title: バッチサイズ、epoc、sample、iterationに関する知見

---

# バッチサイズ、epoc、sample、iterationに関する知見


## "sample"，"batch"，"epoch" の意味は？
Kerasを正しく使うためには，以下の定義を知り，理解しておく必要があります：

Sample: データセットの一つの要素．
例: 一つの画像は畳み込みネットワークの一つのsampleです
例: 一つの音声ファイルは音声認識モデルのための一つのsampleです
Batch: Nのsampleのまとまり．batch内のサンプルは独立して並列に処理されます． 訓練中は，batchの処理結果によりモデルが1回更新されます．
一般的にbatchは，それぞれの入力のみの場合に比べて，入力データのばらつきをよく近似します．batchが大きいほど，その近似は精度が良くなります．しかし，そのようなbatchの処理には時間がかかるにも関わらず更新が一度しかされません．推論（もしくは評価，予測）のためには，メモリ領域を超えなくて済む最大のbatchサイズを選ぶのをおすすめします．(なぜなら，batchが大きければ，通常は高速な評価や予測につながるからです）
Epoch: "データセット全体に対する1回の処理単位"と一般的に定義されている，任意の区切りのこと．訓練のフェーズを明確に区切って，ロギングや周期的な評価するのに利用されます．
evaluation_data もしくは evaluation_split がKeras modelの fit 関数とともに使われるとき，その評価は，各epochが終わる度に行われます．
Kerasでは，epochの終わりに実行されるように callbacks を追加することができます．これにより例えば，学習率を変化させることやモデルのチェックポイント（保存）が行えます．


# 機械学習／ディープラーニングにおけるバッチサイズ、イテレーション数、エポック数の決め方


[参考記事](https://qiita.com/kenta1984/items/bad75a37d552510e4682)