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

TensorFlowとKeras Sequential APIで花のデータセットをダウンロードする方法

花のデータセットは、KerasのSequential APIとGoogleが提供するデータセット保存用APIを組み合わせることで簡単にダウンロードできます。具体的には、「get_file」メソッドにデータセットのURLを指定して呼び出すことで、データセットを取得しローカル環境に保存できます。

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

少なくとも1つの畳み込み層(Convolutional Layer)を含むニューラルネットワークは「畳み込みニューラルネットワーク(CNN)」と呼ばれます。CNNは画像認識など特定の種類の問題において優れた成果を上げてきた手法です。

画像分類器はkeras.Sequentialモデルを使って構築し、データはpreprocessing.image_dataset_from_directoryを使用して読み込みます。これによりディスク上のデータを効率的に扱うことができます。また、過学習(オーバーフィッティング)を検出し、それを軽減するための手法として、データ拡張(Data Augmentation)やドロップアウト(Dropout)などを適用します。

使用するデータセットについて

今回使用するデータセットには約3,700枚の花の画像が含まれています。このデータセットは5つのサブディレクトリで構成されており、各サブディレクトリが1つのクラス(花の種類)に対応しています。クラスは以下の5種類です。

  • デイジー(daisy)
  • タンポポ(dandelion)
  • バラ(roses)
  • ひまわり(sunflowers)
  • チューリップ(tulips)

実行環境:Google Colaboratory

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

コード例

import matplotlib.pyplot as plt
import numpy as np
import os
import PIL
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.models import Sequential
import pathlib
print("必要なパッケージをインポートしました")

dataset_url = "https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz"
data_dir = tf.keras.utils.get_file('flower_photos', origin=dataset_url, untar=True)
data_dir = pathlib.Path(data_dir)
print("データのダウンロードが完了しました")

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

実行結果

必要なパッケージをインポートしました
Downloading data from https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz
228818944/228813984 [==============================] - 5s 0us/step
データのダウンロードが完了しました

コードの解説

  • まず、matplotlibやnumpy、TensorFlowなど、必要なパッケージをすべてインポートします。
  • 次に、tf.keras.utils.get_fileメソッドにデータセットのURLを渡すことで、Googleのストレージから花のデータセットをダウンロードし、tarファイルを自動的に展開します。
  • pathlib.Pathを使ってパスをPathオブジェクトに変換することで、以降のファイル操作を直感的に行えるようになります。
  1. Kerasを使ってPythonでモデルをプロットする方法をわかりやすく解説

    TensorFlowとはTensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術が数多く組み込まれています。TensorFlowにおける「テンソル(Tensor)」は、データを扱うための基本的なデータ構造です。テンソルは多次元配列(またはリスト)であり、データフローグラフと呼ばれる計算グラフのノード同士をエッジでつ

  2. PythonとKerasのFunctional APIを使ってレイヤーを作成する方法を徹底解説

    はじめに TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションの実装など、幅広い用途に活用されています。研究用途から本番環境まで対応しており、複雑な数学的演算を高速に実行するための最適化技術を備えているのが特徴です。 「tensorflow」パッケージは、Windows環境であれば以下のコマンドでインストールできます。 pip install tensorflow Kerasはギリシャ語で「角(つの)」を意味します。Kerasは、ONEIROS(Open-ended