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

TensorFlowと事前学習済みモデルを使ったデータの評価・予測方法を徹底解説

TensorFlowでは、事前学習済みモデルと組み合わせることで、「evaluate」メソッドと「predict」メソッドを使用してデータの評価や予測を簡単に行うことができます。入力画像のバッチはまずフラット化(一次元化)され、モデルの出力にはシグモイド関数が適用され、ロジット値が返されます。

転移学習の基本概念

少なくとも1つの畳み込み層(Convolutional Layer)を含むニューラルネットワークは、畳み込みニューラルネットワーク(CNN)と呼ばれ、学習モデルの構築に広く活用されています。

本記事では、事前学習済みネットワークからの転移学習(Transfer Learning)を利用して、猫と犬の画像を分類する方法を解説します。画像分類における転移学習の基本的な考え方は、「大規模かつ汎用的なデータセットで学習されたモデルは、視覚世界における汎用モデルとして効果的に機能できる」というものです。こうしたモデルはすでに特徴マップ(Feature Map)を学習済みのため、ユーザーは大規模データセットを使って大規模モデルをゼロから訓練する必要がありません。

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

コード例

print("Evaluation and prediction")
loss, accuracy = model.evaluate(test_dataset)
print('Test accuracy is :', accuracy)
print("The batch of image from test set is retrieved")
image_batch, label_batch = test_dataset.as_numpy_iterator().next()
predictions = model.predict_on_batch(image_batch).flatten()
print("The sigmoid function is applied on the model, it returns logits")
predictions = tf.nn.sigmoid(predictions)
predictions = tf.where(predictions < 0.5, 0, 1)
print('Predictions are:\n', predictions.numpy())
print('Labels are:\n', label_batch)

コード出典:https://www.tensorflow.org/tutorials/images/transfer_learning

出力結果

Evaluation and prediction
6/6 [==============================] - 3s 516ms/step - loss: 0.0276 - accuracy: 0.9844
Test accuracy is : 0.984375
The batch of image from test set is retrieved
The sigmoid function is applied on the model, it returns logits
Predictions are:
[1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1]
Labels are:
[1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1]

解説

  • 学習済みモデルを使用することで、データの予測と評価を簡単に行えます。
  • 予測処理は、画像を入力としてモデルに渡した時点で実行されます。
  • 予測結果は、その画像が「犬」か「猫」かの二値分類として出力されます。
  1. TensorFlowと事前学習済みモデルを使ってPythonでデータを可視化する方法

    TensorFlowと事前学習済みモデルを組み合わせることで、matplotlibライブラリを使用してデータを簡単に可視化できます。グラフの描画には「plot」メソッドを使い、学習の進捗や精度の推移をコンソール上で確認できます。関連記事: TensorFlowとは何か?KerasがTensorFlowと連携してニューラルネットワークを構築する仕組み転移学習(Transfer Learning)の基本少なくとも1つの畳み込み層(Convolutional Layer)を含むニューラルネットワークは、畳み込みニューラルネットワーク(CNN)と呼ばれ、学習モデルの構築に広く活用されています。本記事で

  2. TensorFlowとPythonを使ってモデルをトレーニングする方法

    TensorFlowでは、fitメソッドを使ってモデルをトレーニングできます。このメソッドには、エポック数(データセット全体を何回繰り返して学習させるかを示す数値)とトレーニング用データを指定します。実行環境について本記事のコードはGoogle Colaboratory(Google Colab)で実行しています。Google Colabはブラウザ上でPythonコードを実行できるサービスで、面倒な環境構築が不要なうえ、GPU(グラフィックス処理ユニット)を無料で利用できるのが大きな特徴です。ColaboratoryはJupyter Notebookをベースに構築されています。モデルのトレーニ