ここでの「分類」は,データから,そのラベル(クラス名など)を求めるもの. 分類のために,教師データを用いて事前学習を行う.
TensorFlow データセットは,事前学習に役立つ. このページでは,TensorFlow データセットの中の MNIST データセットを紹介する. 利用条件は利用者で確認すること.
参考 Web ページ
このページの内容は,Google Colaboratory でも実行できる.
そのために,次の URL で,Google Colaboratory のノートブックを準備している.
次のリンクをクリックすると,Google Colaboratory のノートブックが開く. そして,Google アカウントでログインすると,Google Colaboratory のノートブック内のコードを実行することができる.Google Colaboratory のノートブックは書き換えて使うこともできる.このとき,書き換え後のものを,各自の Google ドライブ内に保存することもできる.
https://colab.research.google.com/drive/1awZ1ex4KbAJ6hw4VfjKwE-kuiNVVHrfJ?usp=sharing
自分で,Google Colaboratory のノートブックを新規作成する場合(上のリンクを使わない)のため,手順を説明する.
パソコンを使う場合は,下に「前準備(パソコンを使う場合)」で説明している.
https://colab.research.google.com
Google Colab はオンラインの Python 開発環境. 使用するには Google アカウントが必要
システム Python を使うことができる(その場合,Python のインストールは行わない)
システム Python を用いるときは,pip, setuptools の更新は次のコマンドで行う.
sudo apt -y update sudo apt -y install python3-pip python3-setuptools
Ubuntu で,システム Python 以外の Python をインストールしたい場合は pyenv が便利である: 別ページで説明している.
Python の URL: http://www.python.org/
【Python, pip の使い方】
Python, pip は,次のコマンドで起動できる.
【Python 開発環境のインストール】
JupyterLab, spyder, nteract (Python 開発環境) のインストールは, Windows でコマンドプロンプトを管理者として実行し, 次のコマンドを実行.
python -m pip install -U pip setuptools jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder
詳しくは,: 別ページで説明している.
JupyterLab, spyder, nteract (Python 開発環境) のインストール: : 別ページで説明している.
Windows での pip の実行では,コマンドプロンプトを管理者として実行することにする。
python -m pip uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow_datasets tensorflow-hub keras python -m pip install -U tensorflow tensorflow_datasets numpy matplotlib
Windows でのインストール詳細(NVIDIA グラフィックスドライバ,NVIDIA CUDA ツールキット,NVIDIA cuDNN, TensorFlow 関連ソフトウエアを含む): 別ページで説明している.
端末で,次のコマンドを実行.
sudo pip3 uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow_datasets tensorflow-hub keras sudo pip3 uninstall -y six wheel astunparse tensorflow-estimator numpy keras-preprocessing absl-py wrapt gast flatbuffers grpcio opt-einsum protobuf termcolor typing-extensions google-pasta h5py tensorboard-plugin-wit markdown werkzeug requests-oauthlib rsa cachetools google-auth google-auth-oauthlib tensorboard tensorflow sudo apt -y install python3-six python3-wheel python3-numpy python3-grpcio python3-protobuf python3-termcolor python3-typing-extensions python3-h5py python3-markdown python3-werkzeug python3-requests-oauthlib python3-rsa python3-cachetools python3-google-auth sudo apt -y install python3-numpy python3-matplotlib sudo pip3 install -U tensorflow tensorflow_datasets
Ubuntu でのインストール詳細(NVIDIA グラフィックスドライバ,NVIDIA CUDA ツールキット,NVIDIA cuDNN, TensorFlow 関連ソフトウエアを含む): 別ページで説明している.
from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow.compat.v2 as tf
tf.enable_v2_behavior()
print(tf.__version__)
import numpy as np
import tensorflow_datasets as tfds
%matplotlib inline
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore') # Suppress Matplotlib warnings
from tensorflow.keras import backend as K
K.clear_session()
mnist, mnist_info = tfds.load('mnist', with_info = True, shuffle_files=True, as_supervised=True)
fig1 = tfds.show_examples(mnist['train'], mnist_info) fig2 = tfds.show_examples(mnist['test'], mnist_info)
print(mnist_info) print(mnist_info.features["label"].num_classes) print(mnist_info.features["label"].names)
ロード時に「as_supervised=False」としたときは,「image, label = data['image'], data['label']」
ds_train = mnist['train']
it = ds_train.cache().shuffle(1000).batch(128).prefetch(tf.data.experimental.AUTOTUNE)
for data in it.take(1):
image, label = data[0], data[1]
print(image)
print(label)
train = tfds.as_dataframe(mnist['train'], mnist_info) test = tfds.as_dataframe(mnist['test'], mnist_info) print(train) print(test)
行数は len(<データフレーム>), 属性数は len(<データフレーム>.columns)
print(len(train)) print(len(train.columns)) print(len(test)) print(len(test.columns))
train = tfds.as_dataframe(mnist['train'].take(10), mnist_info) test = tfds.as_dataframe(mnist['test'].take(10), mnist_info) print(train) print(test)
行数は len(<データフレーム>), 属性数は len(<データフレーム>.columns)
print(len(train)) print(len(train.columns)) print(len(test)) print(len(test.columns))