TensorFlowとFashion MNISTデータセットを使って、学習済みモデルでPythonによる画像予測を行う方法
TensorFlowはGoogleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装できます。研究用途から本番環境まで幅広く利用されており、複雑な数値計算を高速に処理するための最適化技術を備えています。これは内部でNumPyと多次元配列を使用しているためです。この多次元配列は「テンソル(tensors)」とも呼ばれます。また、TensorFlowは深層ニューラルネットワークの構築もサポートしています。
Windows環境では、以下のコマンドで「tensorflow」パッケージをインストールできます。
pip install tensorflow
テンソルはTensorFlowにおける基本的なデータ構造であり、データフローグラフと呼ばれる計算グラフのエッジ(辺)をつなぐ役割を担います。テンソルの実体は多次元配列またはリストであり、次の3つの主要な属性によって特徴付けられます。
ランク(Rank)
テンソルの次元数を表します。テンソルの階数、つまり定義されたテンソルが持つ次元の数として理解できます。
型(Type)
テンソルの各要素に関連付けられたデータ型を表します。1次元・2次元・n次元のいずれのテンソルにも対応します。
形状(Shape)
行数と列数の組み合わせによって表されるテンソルの形状を指します。
Fashion MNISTデータセットとは
「Fashion MNIST」データセットには、さまざまな種類の衣類の画像が含まれています。10の異なるカテゴリに属する7万枚以上のグレースケール画像で構成され、解像度は28×28ピクセルと低めに設定されています。
以下のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)を利用すると、ブラウザ上でPythonコードを実行でき、事前の設定は一切不要で、GPU(グラフィックス処理装置)にも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。
以下がコードスニペットです。
コード例
print("テストデータから1枚の画像を取り出します")
img = test_images[26]
print("画像の寸法は次の通りです")
print(img.shape)
print("画像をバッチ(単一要素のみのリスト)に追加します")
img = (np.expand_dims(img,0))
print("追加後の画像の寸法は次の通りです")
print(img.shape)
my_pred = probability_model.predict(img)
print("予測結果は次の通りです")
print(my_pred)
plot_value_array(1, my_pred[0], test_labels)
_ = plt.xticks(range(10), class_names, rotation=45)
np.argmax(my_pred[0])コード引用元:https://www.tensorflow.org/tutorials/keras/classification
出力結果
An image from the test data is taken The dimensions of the image are (28, 28) The image is added to batch where it is the only entity The dimensions of the image now (1, 28, 28) The prediction made is [[8.0459216e-07 1.7074371e-09 2.6175227e-02 1.8855806e-07 1.7909618e-01 2.1126857e-06 7.9472500e-01 7.5104166e-11 4.7921480e-07 1.6657851e-10]] 6

コードの解説
まず、テスト画像の寸法がコンソールに表示されます。この例では(28, 28)という2次元の形状です。
「expand_dims」関数を使うのは、モデルがバッチ(例の集合)単位で同時に処理できるよう最適化されているためです。
そのため、単一の画像であってもリストの一部としてバッチ形式に変換する必要があります。変換後の形状は(1, 28, 28)になります。
predict関数は「リストのリスト」を返し、内側の各リストがバッチ内の各画像に対応します。
対象となる画像の予測結果を取り出し、コンソールに表示します。
最後に、「matplotlib」を使用して予測結果を棒グラフとして可視化します。np.argmaxにより、最も確率の高いクラス(この例ではインデックス6=シャツ)が特定されます。
-
TensorFlowを使ってMNISTデータセット用のモデルを定義する方法
TensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、各種アルゴリズムやディープラーニングアプリケーションの実装が可能になります。複雑な数値計算を高速に処理できる最適化技術を備えているのが特徴で、これは内部でNumPyと多次元配列を利用しているためです。この多次元配列は「テンソル(Tensor)」とも呼ばれます。また、深層ニューラルネットワークの構築もサポートしています。TensorFlowのインストールWindows環境に「tensorflow」パッケージをインストールするには、以下のコマン
-
TensorFlowとPythonでFashion MNISTの予測結果を検証する方法を徹底解説
TensorFlowとはTensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、機械学習アルゴリズムやディープラーニングアプリケーションの実装が可能になります。研究用途から本番環境まで幅広く活用されています。Windows環境にTensorFlowをインストールするには、以下のコマンドを実行します。pip install tensorflowFashion MNISTデータセットについて「Fashion MNIST」データセットには、さまざまな種類の衣類の画像が含まれています。10の異なるカテゴリに