ここまでの経過:
$ source [venv のパス]/venv/bin/activate
(venv) $ python
>>> from tensorflow import keras
>>> fashion_mnist = keras.datasets.fashion_mnist
>>> (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
>>> class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress',
... 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
>>> train_images = train_images / 255.0
>>> test_images = test_images / 255.0
(1) 層の設定
いまより,モデルをつぎの3層構造でつくる:
- tf.keras.layers.Flatten 層
この層は、画像を(28×28ピクセルの)2次元配列から、28×28=784ピクセルの、1次元配列に変換する。
(「画像の中に積まれているピクセルの行を取り崩し、横に並べる」)
- tf.keras.layers.Dense (relu) 層
- tf.keras.layers.Dense (softmax) 層
10個のノード(ニューロン)が全結合。
この層は、合計が1になる10個の確率の配列を返す──今見ている画像が10個のクラスのそれぞれに属する確率を,10個のノードが出力する。
>>> model = keras.Sequential([
... keras.layers.Flatten(input_shape=(28, 28)),
... keras.layers.Dense(128, activation='relu'),
... keras.layers.Dense(10, activation='softmax')
... ])
WARNING:tensorflow:
From /home/pi/venv/lib/python3.7/site-packages
/tensorflow_core/python/ops/resource_variable_ops.py:1630:
calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint
is deprecated and will be removed in a future version.
Instructions for updating:
If using Keras pass *_constraint arguments to layers.
>>>
(2) モデルのコンパイル
モデルのコンパイルにおいて,モデルにつぎの設定を加える:
- 損失関数(loss function)
訓練中のモデルが不正確であるほど大きな値となる関数。
この関数の値を最小化することによって、訓練中のモデルを正しい方向に向かわせようとする。
- オプティマイザ(optimizer)
モデルが見ているデータと、損失関数の値から、どのようにモデルを更新するかを決定する。
- メトリクス(metrics)
訓練とテストのステップを監視するのに使用。
ここでは,accuracy (正解率) ──画像が正しく分類された比率──を使用する。
>>> model.compile(optimizer='adam',
... loss='sparse_categorical_crossentropy',
... metrics=['accuracy'])
>>>
|