SVHN データセット(Python を使用)
SVHN データセットを紹介する. 利用条件は利用者で確認すること.
【目次】
* SVHN データセット
SVHN データセット は,公開されているデータセット(オープンデータ)である.
SVHN データセット は,小さく切り取られた数字の画像で,ラベル付けがされている. 機械学習での画像分類の学習や検証に利用できる.
- 実写(自然風景の画像中の数字や数値の認識)に由来.Googleストリートビュー画像中の家の番号から得ている.
- 0から9までの数字が示されたカラー画像.
- 数字が切り取られ,中央にくるように調整されているが,近くにある他の数字や,妨げになるようなものは,そのまま残されている.
- 画像の枚数:合計 630420枚.
(内訳)
73257枚:教師データ
26032枚:検証データ
531131枚: extraのデータ
- 画像のサイズ: 32x32 である.
- RGB のカラー画像.
【文献】
Yuval Netzer, Tao Wang, Adam Coates, Alessandro Bissacco, Bo Wu, Andrew Y. Ng, Reading Digits in Natural Images with Unsupervised Feature Learning, NIPS Workshop on Deep Learning and Unsupervised Feature Learning 2011, 2011.
PDF ファイル:http://ufldl.stanford.edu/housenumbers/nips2011_housenumbers.pdf
【サイト内の関連ページ】
- SVHN データセットを扱う Python プログラム: 別ページ で説明している.
【関連する外部ページ】
- SVHN データセットの公式ページ: http://ufldl.stanford.edu/housenumbers/
- Papers With Code の SVHN データセットのページ: https://paperswithcode.com/dataset/svhn
- PyTorch の SVHN データセット: https://pytorch.org/vision/stable/datasets.html#torchvision.datasets.SVHN
- TensorFlow データセットの SVHN データセット: https://www.tensorflow.org/datasets/catalog/svhn_cropped
1. 前準備
Python の準備(Windows,Ubuntu 上)
- Windows での Python 3.10,関連パッケージ,Python 開発環境のインストール(winget を使用しないインストール): 別ページ »で説明
- Ubuntu では,システム Pythonを使うことができる.Python3 開発用ファイル,pip, setuptools のインストール: 別ページ »で説明
【サイト内の関連ページ】
- Python のまとめ: 別ページ »にまとめ
- Google Colaboratory の使い方など: 別ページ »で説明
【関連する外部ページ】 Python の公式ページ: https://www.python.org/
TensorFlow, TensorFlow データセットのインストール
Windows の場合
Windows では,コマンドプロンプトを管理者として実行し, 次のコマンドを実行する.
python -m pip install -U tensorflow-gpu tensorflow_datasets
Windows での TensorFlow のインストールの詳細: 別ページ »で説明
(このページで,Build Tools for Visual Studio 2022,NVIDIA ドライバ, NVIDIA CUDA ツールキット, NVIDIA cuDNNのインストールも説明している.)
Ubuntu の場合
Ubuntu では,次のコマンドを実行.
sudo apt -y update sudo apt -y install python3-numpy sudo pip3 install -U tensorflow-gpu tensorflow_datasets
Ubuntu での TensorFlow のインストールの詳細: 別ページ »で説明
(このページで,NVIDIA ドライバ, NVIDIA CUDA ツールキット, NVIDIA cuDNNのインストールも説明している.)
2. SVHN データセットのロードと確認表示(TensorFlow データセットを使用)
【Python の利用】
Python は,次のコマンドで起動できる.
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
- Windows で,コマンドプロンプトを実行.
- jupyter qtconsole の起動
これ以降の操作は,jupyter qtconsole で行う.
jupyter qtconsole
Python 開発環境として,Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder のインストール
Windows で,コマンドプロンプトを管理者として実行し,次のコマンドを実行する.
次のコマンドを実行することにより,pipとsetuptoolsを更新する,Jupyter Notebook,PyQt5、Spyderなどの主要なPython環境がインストールされる.
python -m pip install -U pip setuptools requests notebook==6.5.7 jupyterlab jupyter jupyter-console jupytext PyQt5 nteract_on_jupyter spyder
- パッケージのインポート,TensorFlow のバージョン確認など
import tensorflow as tf import numpy as np import tensorflow_datasets as tfds %matplotlib inline import matplotlib.pyplot as plt import warnings warnings.filterwarnings('ignore') # Suppress Matplotlib warnings
- TensorFlow データセット から SVHN データセット をロード
結果は,TensorFlow の Tensor である.
type は型,shape はサイズ,np.max と np.mi は最大値と最小値.
tensorflow_datasets の loadで, 「batch_size = -1」を指定して,一括読み込みを行っている.
svhn, svhn_metadata = tfds.load('svhn_cropped', with_info = True, shuffle_files=True, as_supervised=True, batch_size = -1) x_train, y_train, x_test, y_test = svhn['train'][0], svhn['train'][1], svhn['test'][0], svhn['test'][1] print(svhn_metadata)
4. SVHN データセットの確認
- データセットの中の画像を表示
MatplotLib を用いて,0 番目の画像を表示する
NUM = 0 plt.figure() plt.imshow(x_train[NUM,:,:,0], cmap='gray') plt.colorbar() plt.gca().grid(False) plt.show()
- データセットの情報を表示
print(svhn_metadata) print(svhn_metadata.features["label"].num_classes) print(svhn_metadata.features["label"].names)
- データの確認表示
MatplotLib を用いて,複数の画像を並べて表示する.
plt.style.use('default') plt.figure(figsize=(10,10)) for i in range(25): plt.subplot(5,5,i+1) plt.xticks([]) plt.yticks([]) plt.grid(False) plt.imshow(x_train[i]) plt.show()
- train, test, extra を得る
train = svhn['train'] test = svhn['test'] extra = svhn['extra'] print(train) print(test) print(extra)