TensorFlowとPythonを使って花のデータセットを可視化する方法
花のデータセットは、matplotlibライブラリを使用することで簡単に可視化できます。imshowメソッドを使うと、画像をコンソール上に表示でき、データセット全体を反復処理しながら最初の数枚の画像だけを出力するといったことも可能です。
使用するデータセットについて
本記事では、数千枚の花の画像を含む「flowers(花)」データセットを使用します。このデータセットには5つのサブディレクトリが含まれており、各クラス(花の種類)ごとに1つのサブディレクトリが割り当てられています。
なお、以下のコードはGoogle Colaboratoryで実行することを想定しています。Google Colab(Colaboratory)を利用すると、ブラウザ上でPythonコードを実行でき、事前の環境構築が一切不要なうえ、GPU(グラフィックス処理装置)にも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。
コード例
import matplotlib.pyplot as plt
print("Visualizing the flower dataset")
plt.figure(figsize=(10, 10))
for images, labels in train_ds.take(1):
for i in range(6):
ax = plt.subplot(3, 3, i + 1)
plt.imshow(images[i].numpy().astype("uint8"))
plt.title(class_names[labels[i]])
plt.axis("off")
print("Iterating over dataset")
print("Retrieving batches of images")
for image_batch, labels_batch in train_ds:
print(image_batch.shape)
print(labels_batch.shape)
breakコード出典:https://www.tensorflow.org/tutorials/load_data/images
実行結果
Visualizing the flower dataset Iterating over dataset Retrieving batches of images (32, 180, 180, 3) (32,)

コードの解説
- matplotlibライブラリを使用して、花のデータセットを可視化しています。
take(1)でデータセットから最初のバッチを取得し、その中の先頭6枚の画像を反復処理してコンソールに表示します。各画像にはclass_namesから取得したラベル(花の種類名)がタイトルとして付けられます。- 続けてデータセットを再度反復処理し、画像バッチとラベルバッチの形状(次元)をコンソールに出力しています。
実行結果からわかるように、1つのバッチには32枚の画像が含まれており、各画像のサイズは180×180ピクセル、カラーチャンネル数は3(RGB)です。ラベルのバッチも同様に32個の要素を持っています。このようにバッチの形状を確認することで、モデルに入力されるデータの構造を事前に把握できます。
-
TensorFlowとPythonを使ってデータセットを視覚化する方法
ここでは、花のデータセットを使用します。このデータセットは、Googleが提供するAPI経由でダウンロードでき、「get_file」メソッドにAPIのURLを引数として渡すことで、データを開発環境に取得できます。 ダウンロードしたデータは「matplotlib」ライブラリを使って視覚化できます。「imshow」メソッドを使用すると、コンソール上に画像を表示することが可能です。 TensorFlowとKerasの連携 関連記事: TensorFlowとは何か?KerasはどのようにTensorFlowと連携してニューラルネットワークを構築するのか? 本記事ではKeras Sequential
-
TensorFlowとKeras Sequential APIで花のデータセットを探索する方法
花のデータセットは、Keras Sequential APIに加えて「PIL」パッケージの「Image.open」メソッドを活用することで効率的に探索できます。データセット内のサブディレクトリにはそれぞれ異なる種類の花の画像が格納されており、これらにインデックスでアクセスしてコンソール上に表示することが可能です。本記事では、Keras Sequential APIを使用します。このAPIは、各レイヤーが正確に1つの入力テンソルと1つの出力テンソルを持つ、シンプルなレイヤーの積み重ねからなる逐次モデルを構築するのに役立ちます。画像分類器はkeras.Sequentialモデルで作成し、データはp