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

TensorFlowとPythonでCIFARデータセットをダウンロード・準備する方法

CIFARデータセットは、Kerasの「datasets」モジュールに含まれる「load_data」メソッドを使うことで簡単にダウンロードできます。ダウンロード後、データは自動的に訓練用データセットとテスト用データセットに分割されます。

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

Keras Sequential APIについて

本記事では、KerasのSequential APIを使用します。Sequential APIは、層を単純に積み重ねたモデルを構築するのに便利なAPIで、各レイヤーが正確に1つの入力テンソルと1つの出力テンソルを持つプレーンなスタック構造のモデルを扱う際に活躍します。

畳み込みニューラルネットワーク(CNN)とは

少なくとも1つの畳み込み層(Convolutional layer)を含むニューラルネットワークは、畳み込みニューラルネットワーク(CNN)と呼ばれます。CNNは一般的に、以下のようなレイヤーを組み合わせて構成されます。

  • 畳み込み層(Convolutional layers)
  • プーリング層(Pooling layers)
  • 全結合層(Dense layers)

CNNは、画像認識など特定の種類の問題に対して優れた結果をもたらすことで知られています。

実行環境:Google Colaboratory

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

コード例

import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
print("CIFARデータセットをダウンロードしています")
(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()
print("ピクセル値を0から1の範囲に正規化しています")
train_images, test_images = train_images / 255.0, test_images / 255.0
class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer',
'dog', 'frog', 'horse', 'ship', 'truck']

コード引用元:https://www.tensorflow.org/tutorials/images/cnn

実行結果

The CIFAR dataset is being downloaded
Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
170500096/170498071 [==============================] - 11s 0us/step
The pixel values are normalized to be between 0 and 1

解説

  • CIFAR-10データセットには、10クラス合計60,000枚のカラー画像が含まれており、各クラスに6,000枚ずつの画像が割り当てられています。
  • このデータセットは、50,000枚の訓練用画像と10,000枚のテスト用画像に分割されています。
  • 各クラスは相互に排他的であり、クラス間に重複はありません。
  • データセットをダウンロードした後、ピクセル値が0から1の範囲に収まるように正規化されます。
  1. TensorFlowとPythonを使ってデータセットを視覚化する方法

    ここでは、花のデータセットを使用します。このデータセットは、Googleが提供するAPI経由でダウンロードでき、「get_file」メソッドにAPIのURLを引数として渡すことで、データを開発環境に取得できます。 ダウンロードしたデータは「matplotlib」ライブラリを使って視覚化できます。「imshow」メソッドを使用すると、コンソール上に画像を表示することが可能です。 TensorFlowとKerasの連携 関連記事: TensorFlowとは何か?KerasはどのようにTensorFlowと連携してニューラルネットワークを構築するのか? 本記事ではKeras Sequential

  2. TensorFlowとPythonを使って花のデータセットを可視化する方法

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