やってみよう!機械学習 - keras(TensorFlow)1
TensorFlowのライブラリとして使われている"keras"で使い方の流れを確認しながら実際に使ってみましょう。
scikit-Learnで機械学習として作っていきましたが、深層学習、ディープラーニングのkerasはモデルの作り方に違いがあります。
scikit-Learnではモデル自体を選んで使いましたが、kerasの場合はそのモデルを作るために部品を選び構築していきます。画像分類をやっていきます。
事前準備がいらないGoogle Colabを使います。
kerasを使うためにライブラリをインポートします。
import tensorflow as tf
計算しやすい(numpy)、見た目わかりやすくするライブラリ( matplotlib)をインポートします。
import numpy as np
import matplotlib.pyplot as plt
そして使うデータをkerasのデータセットからインポートします。
fashion_mnist = tf.keras.datasets.fashion_mnist
fashion_mnistを使います。そしてすぐ使えるように変数に代入します。
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
低解像度(28 x 28 ピクセル)で個々の衣料品の画像とその名前が使えるようになります。
トレーニングデータ
テストデータ
画像のデータを見てみます。
train_images[0]
array([[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0],
[ 0, 0, 0, 0, ・・・・・
・・・・・
配列で数字の羅列が出てきます。この並びで画像が表現されます。0から255の数字で表されます。
この数字の羅列を画像に変換、表示させます。
plt.figure()
plt.imshow(train_images[0])
plt.colorbar()
plt.grid(False)
plt.show()
ラベルを見てみます
train_labels[0]
9
数字が出てきました。これを名前に変換するために配列を用意します。
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
これを使い、ラベルの"9"出力します。
class_names[9]
実行すると
と出てきます。
データの数も見てみます。画像を見てみます。
train_images.shape
として実行すると"(60000, 28, 28)"と出力されます。28 × 28 ピクセルの画像が 60,000 含まれていることがわかります。ラベルも同じように
train_labels.shape
"(60000,)"と出てきます。
これから実際にこのデータを使って処理をしていきますが、そのままでは使えません。画像が0から255になっているので使いやすく0から1に変更するために255で割る処理をします。
train_images = train_images / 255.0
test_images = test_images / 255.0
25枚の画像を表示してみます。
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(train_images[i], cmap=plt.cm.binary)
plt.xlabel(class_names[train_labels[i]])
plt.show()
これで準備は完了です。
この記事が気に入ったらサポートをしてみませんか?