Python
 Computer >> コンピューター >  >> プログラミング >> Python

TensorFlowとPythonでFashion MNISTデータセットのモデルをトレーニングする方法

TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装できます。研究用途から本番環境まで幅広く活用されているフレームワークです。

Windowsに「tensorflow」パッケージをインストールするには、以下のコマンドを実行します。

pip install tensorflow

テンソル(Tensor)はTensorFlowにおける基本的なデータ構造で、フロー図のエッジ(辺)をつなぐ役割を果たします。このフロー図は「データフローグラフ」と呼ばれます。テンソルとは、要するに多次元配列またはリストのことです。

「Fashion MNIST」データセットには、さまざまな種類の衣類の画像が収録されています。10の異なるカテゴリに属する7万枚以上のグレースケール画像で構成され、各画像の解像度は28×28ピクセルと低めです。

以下のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)を利用すると、ブラウザ上でPythonコードを実行でき、面倒な環境設定は一切不要です。さらにGPU(グラフィックス処理装置)にも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。以下がそのコードです。

コード例

print("モデルをデータに適合させます")
model.fit(train_images, train_labels, epochs=15)

print("精度を計算します")
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print('\nテスト精度:', test_acc)

コード出典 − https://www.tensorflow.org/tutorials/keras/classification

実行結果

The model is fit to the data
Epoch 1/15
1875/1875 [==============================] - 4s 2ms/step - loss: 0.6337 - accuracy: 0.7799
Epoch 2/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3806 - accuracy: 0.8622
Epoch 3/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3469 - accuracy: 0.8738
Epoch 4/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3131 - accuracy: 0.8853
Epoch 5/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2962 - accuracy: 0.8918
Epoch 6/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2875 - accuracy: 0.8935
Epoch 7/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2705 - accuracy: 0.8998
Epoch 8/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2569 - accuracy: 0.9023
Epoch 9/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2465 - accuracy: 0.9060
Epoch 10/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2440 - accuracy: 0.9088
Epoch 11/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2300 - accuracy: 0.9143
Epoch 12/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2255 - accuracy: 0.9152
Epoch 13/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2114 - accuracy: 0.9203
Epoch 14/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2101 - accuracy: 0.9211
Epoch 15/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2057 - accuracy: 0.9224
The accuracy is being computed
313/313 - 0s - loss: 0.3528 - accuracy: 0.8806

The test accuracy is : 0.8805999755859375

解説

  • まず訓練データをモデルに入力してモデルを構築します。「train_images」と「train_labels」は入力データの配列です。

  • モデルは、画像とそれに対応するラベルとのマッピング関係を学習していきます。

  • 「test_images」にはテスト用のデータが格納されています。

  • テストデータセットを用いると、モデルによる予測結果がテストデータセット内の実際のラベルと照合され、正答率が算出されます。

  • 「model.fit」メソッドを呼び出すことで、モデルを訓練データセットに適合させます。引数の「epochs=15」は、訓練データ全体を15回繰り返し学習することを意味します。

  • 「model.evaluate」関数は、学習に関連する損失(loss)と精度(accuracy)を返します。

実行結果を見ると、エポックが進むごとに損失が減少し、訓練精度が約92%まで向上していることがわかります。一方、テストデータに対する最終的な精度は約88%であり、訓練データよりやや低い値となっています。これは過学習(オーバーフィッティング)の兆候であり、実務ではドロップアウトや正則化などの手法で対策することが一般的です。

  1. TensorFlowとFashion MNISTデータセットを使って、学習済みモデルでPythonによる画像予測を行う方法

    TensorFlowはGoogleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装できます。研究用途から本番環境まで幅広く利用されており、複雑な数値計算を高速に処理するための最適化技術を備えています。これは内部でNumPyと多次元配列を使用しているためです。この多次元配列は「テンソル(tensors)」とも呼ばれます。また、TensorFlowは深層ニューラルネットワークの構築もサポートしています。Windows環境では、以下のコマンドで「tensorflow」パッケージをインスト

  2. TensorFlowとPythonでFashion MNISTの予測結果を検証する方法を徹底解説

    TensorFlowとはTensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、機械学習アルゴリズムやディープラーニングアプリケーションの実装が可能になります。研究用途から本番環境まで幅広く活用されています。Windows環境にTensorFlowをインストールするには、以下のコマンドを実行します。pip install tensorflowFashion MNISTデータセットについて「Fashion MNIST」データセットには、さまざまな種類の衣類の画像が含まれています。10の異なるカテゴリに