Path: blob/master/site/ja/datasets/keras_example.ipynb
25115 views
Training a neural network on MNIST with Keras
This simple example demonstrates how to plug TensorFlow Datasets (TFDS) into a Keras model.
Copyright 2020 The TensorFlow Datasets Authors, Licensed under the Apache License, Version 2.0
データセットを読み込む
次の引数を使って MNIST データセットを読み込みます。
shuffle_files
: MNIST データは、単一のファイルにのみ保存されていますが、ディスク上の複数のファイルを伴うより大きなデータセットについては、トレーニングの際にシャッフルすることが良い実践です。as_supervised
: dict{'image': img, 'label': label}
の代わりに tuple(img, label)
を返します。
トレーニングパイプラインを構築する
次の変換を適用します。
tf.data.Dataset.map
: TFDS は画像をtf.uint8
として提供しますが、モデルはtf.float32
を期待するため、画像を正規化します。tf.data.Dataset.cache
: データセットがメモリに収まる場合、シャッフル前にキャッシュすると、パフォーマンスを改善できます。
注意: ランダム変換は、キャッシュの後に適用してください。tf.data.Dataset.shuffle
: 真のランダム性を得るには、シャッフルバッファをデータセットの完全なサイズに設定してください。
注意: メモリに収まらない大きなデータセットについては、システムで可能な場合はbuffer_size=1000
にします。tf.data.Dataset.batch
: シャッフルの後にバッチ処理を行い、各エポックで一意のバッチを取得します。tf.data.Dataset.prefetch
: プリフェッチによってパイプラインを終了し、パフォーマンスを向上させます。
評価パイプラインを構築する
テストのパイプラインはトレーニングのパイプラインと似ていますが、次のようにわずかに異なります。
tf.data.Dataset.shuffle
を呼び出す必要はありません。エポック間のバッチが同一である可能性があるのでキャッシュはバッチ処理の後に行われます。
手順 2: モデルを作成してトレーニングする
TFDS 入力パイプラインを簡単な Keras モデルにプラグインし、モデルをコンパイルしてトレーニングします。