Path: blob/master/site/ja/tutorials/quickstart/beginner.ipynb
25118 views
Copyright 2019 The TensorFlow Authors.
初心者のための TensorFlow 2.0 入門
このガイドでは簡単な導入として、Keras を使って次のことを行います。
画像を分類するニューラルネットワークを構築する。
そのニューラルネットワークをトレーニングする。
最後に、モデルの精度を評価する。
モデルの精度を評価します。
このファイルは Google Colaboratory の notebook ファイルです。 Python プログラムはブラウザ上で直接実行されます。TensorFlow を学んだり使ったりするには最良の方法です。Google Colab のnotebook の実行方法は以下のとおりです。
Pythonランタイムへの接続:メニューバーの右上で「接続」を選択します。
ノートブックのすべてのコードを実行するには、Runtime > Run all を選択します。コードセルを 1 つずつ実行するには、セルにマウスポインタ―を合わせて Run cell アイコンを選択します。
TensorFlow をセットアップする
まず、TensorFlow をプログラムにインポートします。
Colab ではなく独自の開発環境で手順を実行している場合は、開発用 TensorFlow のセットアップについて、インストールガイドをご覧ください。
注意: 独自の開発環境を使用している場合は、TensorFlow 2 パッケージをインストールする際に、最新の pip
にアップグレード済みであることを確認してください。詳細は、インストールガイドをご覧ください。
データセットを読み込む
MNIST データセットを読み込んで準備します。画像のピクセル値は 0~255 です。値を 255.0
で割って、0~1 の範囲に変換しましょう。また、この操作によって、サンプルデータが整数から浮動小数点にも変換されます。
機械学習モデルを構築する
tf.keras.Sequential
モデルを構築します。
tf.nn.softmax
関数は、クラスごとにこれらのロジットを "probabilities" に変換します。
注意: この tf.nn.softmax
をネットワークの最後のレイヤーのアクティベーション関数として組み込むことも可能です。こうすることでモデルの出力をより直接的に解釈可能にすることもできますが、softmax 出力を使用する場合、すべてのモデルに対して正確で数値的に安定した損失計算を提供することは不可能であるため、この方法は推奨されません。
losses.SparseCategoricalCrossentropy
を使用して、トレーニングの損失関数を定義します。
損失関数は、グラウンドトゥルース値のベクトルとロジットのベクトルを取り、サンプルごとにスカラー損失を返します。この損失は true クラスの負の対数確率と同等です。モデルが確実に正しいクラスである場合、損失はゼロとなります。
トレーニングされていないこのモデルでは、ランダムに近い確率(クラス当たり 1/10)が得られるため、最初の損失は -tf.math.log(1/10) ~= 2.3
に近くなります。
トレーニングを開始する前に、Keras Model.compile
を使用してモデルの構成とコンパイルを行います。optimizer
クラスを adam
に、loss
を前に定義した loss_fn
関数に設定し、metrics
パラメータを accuracy
に設定して評価するモデルの指標を指定します。
モデルをトレーニングして評価する
損失を最小限に抑えられるようにモデルのパラメータを Model.fit
メソッドで調整します。
tf.nn.softmax
関数はクラスごとにこれらのロジットを "確率" に変換します。
モデルが確率を返すようにするには、トレーニング済みのモデルをラップして、それに softmax を接続することができます。
まとめ
おめでとうございます!事前構築済みのデータセットと Keras API を使用して、機械学習モデルをトレーニングしました。
Keras のその他の使用例については、チュートリアルをご覧ください。Keras を使ったモデルの構築に関してさらに学習するには、ガイドをお読みください。データの読み込みと準備についてさらに学習するには、画像データの読み込みまたは CSV データの読み込みに関するチュートリアルをご覧ください。