これらのドキュメントは私たちTensorFlowコミュニティが翻訳したものです。最新の状態を反映したものであることを保証することはできません。この翻訳の品質を向上させるためのご意見をお持ちの方は、GitHubリポジトリtensorflow/docsにプルリクエストをお送りください。メーリングリストにご連絡ください。このガイドでは、スニーカーやシャツなど、身に着けるものの写真を分類するニューラルネットワークのモデルを訓練します。すべての詳細を理解できなくても問題ありません。TensorFlowの全体を早足で掴むためのもので、詳細についてはあとから見ていくことになります。tf.kerasを使用します。MNISTを使用します。MNISTには10カテゴリーの白黒画像70,000枚が含まれています。それぞれは下図のような1枚に付き1種類の衣料品が写っている低解像度(28×28ピクセル)の画像です。データセットの代替として開発されたものです。MNISTと全く同じです。MNISTを使うのは、目先を変える意味もありますが、普通のMNISTよりも少しだけ手応えがあるからでもあります。どちらのデータセットも比較的小さく、アルゴリズムが期待したとおりに機能するかどうかを確かめるために使われます。プログラムのテストやデバッグのためには、よい出発点になります。ここでは、60,000枚の画像を訓練に、10,000枚の画像を、ネットワークが学習した画像分類の正確性を評価するのに使います。MNISTのデータを簡単にインポートし、ロードすることが出来ます。0us/stepロードしたデータセットは、NumPy配列になります。2つの配列は、モデルの訓練に使用される訓練用データセットです。配列からなるテスト用データセットを使ってテストします。画像は28×28のNumPy配列から構成されています。それぞれのピクセルの値は0から255の間の整数です。ラベル(label)は、0から9までの整数の配列です。それぞれの数字が下表のように、衣料品のクラス(class)に対応しています。boot画像はそれぞれ単一のラベルに分類されます。データセットには上記のクラス名が含まれていないため、後ほど画像を出力するときのために、クラス名を保存しておきます。boot']データの観察モデルの訓練を行う前に、データセットのフォーマットを見てみましょう。下記のように、訓練用データセットには28×28ピクセルの画像が60,000枚含まれています。28)同様に、訓練用データセットには60,000個のラベルが含まれます。len(train_labels)60000ラベルはそれぞれ、0から9までの間の整数です。dtype=uint8)テスト用データセットには、10,000枚の画像が含まれます。画像は28×28ピクセルで構成されています。28)テスト用データセットには10,000個のラベルが含まれます。len(test_labels)10000データの前処理ネットワークを訓練する前に、データを前処理する必要があります。最初の画像を調べてみればわかるように、ピクセルの値は0から255の間の数値です。plt.figure()plt.imshow(train_images[0])plt.colorbar()plt.grid(False)plt.show()ニューラルネットワークにデータを投入する前に、これらの値を0から1までの範囲にスケールします。そのためには、画素の値を255で割ります。訓練用データセットとテスト用データセットは、同じように前処理することが重要です。255.0訓練用データセットの最初の25枚の画像を、クラス名付きで表示してみましょう。ネットワークを構築・訓練する前に、データが正しいフォーマットになっていることを確認します。plt.xlabel(class_names[train_labels[i]])plt.show()モデルの構築ニューラルネットワークを構築するには、まずモデルの階層を定義し、その後モデルをコンパイルします。層の設定ニューラルネットワークを形作る基本的な構成要素は層(layer)です。層は、入力されたデータから「表現」を抽出します。それらの「表現」は、今取り組もうとしている問題に対して、より「意味のある」ものであることが期待されます。ディープラーニングモデルのほとんどは、単純な層の積み重ねで構成されています。ような層のほとんどには、訓練中に学習されるパラメータが存在します。この層は、画像を(28×28ピクセルの)2次元配列から、28×28=784ピクセルの、1次元配列に変換します。この層が、画像の中に積まれているピクセルの行を取り崩し、横に並べると考えてください。この層には学習すべきパラメータはなく、ただデータのフォーマット変換を行うだけです。これらの層は、密結合あるいは全結合されたニューロンの層となります。層には、128個のノード(あるはニューロン)があります。最後の層でもある2番めの層は、10ノードのsoftmax層です。この層は、合計が1になる10個の確率の配列を返します。それぞれのノードは、今見ている画像が10個のクラスのひとつひとつに属する確率を出力します。モデルのコンパイルモデルが訓練できるようになるには、いくつかの設定を追加する必要があります。それらの設定は、モデルのコンパイル(compile)時に追加されます。—訓練中にモデルがどれくらい正確かを測定します。この関数の値を最小化することにより、訓練中のモデルを正しい方向に向かわせようというわけです。オプティマイザ(optimizer)—モデルが見ているデータと、損失関数の値から、どのようにモデルを更新するかを決定します。—訓練とテストのステップを監視するのに使用します。(正解率)、つまり、画像が正しく分類された比率を使用しています。metrics=['accuracy'])モデルの訓練ニューラルネットワークの訓練には次のようなステップが必要です。モデルは、画像とラベルの対応関係を学習します。