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

TensorFlowで花のデータセットを読み込んで操作する方法を解説

本記事では、数千枚の花の画像を含む「flowers」データセットを使用します。このデータセットは5つのサブディレクトリで構成されており、各クラス(花の種類)ごとに1つのサブディレクトリが対応しています。

前提知識

関連記事: TensorFlowとは何か?KerasがどのようにTensorFlowと連携してニューラルネットワークを構築するのか?

データセットのロードと分割の手順

「get_file」メソッドを使って花のデータセットをダウンロードした後、そのデータを環境にロードして処理を行います。ローダーのパラメータは明示的に指定し、読み込んだデータは訓練用(training)と検証用(validation)に分割します。

以下のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)はブラウザ上でPythonコードを実行できるサービスで、事前の設定が一切不要であり、GPU(Graphics Processing Unit)にも無料でアクセス可能です。ColaboratoryはJupyter Notebookをベースに構築されています。

print("Loading parameters for the loader")
batch_size = 32
img_height = 180
img_width = 180

print("Preprocessing the image dataset using Keras")
print("Splitting dataset into training and validation set ")

train_ds = tf.keras.preprocessing.image_dataset_from_directory(
   data_dir,
   validation_split=0.2,
   subset="training",
   seed=123,
   image_size=(img_height, img_width),
   batch_size=batch_size)

print("Splitting dataset into training and validation set ")
val_ds = tf.keras.preprocessing.image_dataset_from_directory(
   data_dir,
   validation_split=0.2,
   subset="validation",
   seed=123,
   image_size=(img_height, img_width),
   batch_size=batch_size)

print("Printing the class names present in sub-directories")
class_names = train_ds.class_names
print(class_names)

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

実行結果

Loading parameters for the loader
Preprocessing the image dataset using Keras
Splitting dataset into training and validation set
Found 3670 files belonging to 5 classes.
Using 2936 files for training.
Splitting dataset into training and validation set
Found 3670 files belonging to 5 classes.
Using 734 files for validation.
Printing the class names present in sub-directories
['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips']

コードの解説

  • バッチサイズや画像サイズなど、ローダーに必要なパラメータを定義します。ここではバッチサイズ32、画像サイズ180×180ピクセルを指定しています。
  • 「image_dataset_from_directory」メソッドを使用し、データセット全体の20%を検証用として、残り80%を訓練用に分割します。seedを固定することで、毎回同じ分割結果が得られるようにしています。
  • 実行結果から、合計3,670ファイルが5つのクラスに属していることが確認でき、うち2,936ファイルが訓練用、734ファイルが検証用に使用されています。
  • 最後に、各画像が分類されるクラス名(「daisy」「dandelion」「roses」「sunflowers」「tulips」)がコンソールに出力されます。
  1. TensorFlowとPythonを使って花のデータセットを可視化する方法

    花のデータセットは、matplotlibライブラリを使用することで簡単に可視化できます。imshowメソッドを使うと、画像をコンソール上に表示でき、データセット全体を反復処理しながら最初の数枚の画像だけを出力するといったことも可能です。使用するデータセットについて本記事では、数千枚の花の画像を含む「flowers(花)」データセットを使用します。このデータセットには5つのサブディレクトリが含まれており、各クラス(花の種類)ごとに1つのサブディレクトリが割り当てられています。なお、以下のコードはGoogle Colaboratoryで実行することを想定しています。Google Colab(Col

  2. TensorFlowでMNISTデータセットのモデル重みを保存・読み込みする方法

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