データマイニングのアルゴリズムと実践(12):tf.kerasを使用してfashion_MNIST画像分類を実装する

fashion_MNISTは、主に一部の衣料品マッチングチャート用の手書き画像分類データセットです。データセットは比較的小さく、実践的な練習に適したデータセットです。これは、最初の複数分類の例でもあります。softmaxを使用します。トレーニングの損失関数。softmaxは出力分類が確率であることを保証するため、分類結果の確率は合計で1になります。

画像データセットを使用するのはこれが初めてです。一般に、データの特徴を抽出するには畳み込みニューラルネットワークを使用する必要があります。データセット自体は特徴のあるデータです(画像の境界は比較的明確です)。次のハイヒールなどの直接トレーニングでは、データセットの特徴境界は明らかです。

 実装は次のとおりです。

from __future__ import absolute_import, division, print_function
import tensorflow as tf
import numpy as np
rng = np.random
import matplotlib.pyplot as plt
%matplotlib inline

(train_image,train_lable),(test_image,test_lable)=tf.keras.datasets.fashion_mnist.load_data()
# type(train_image)

 # image show 查看图像
plt.imshow(train_image[0])

train_image=train_image/255 # 归一化
test_image=test_image/255

# 简历顺序模型
model=tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(28,28))) # 28*28向量
model.add(tf.keras.layers.Dense(128,activation="relu"))
model.add(tf.keras.layers.Dense(10,activation="softmax"))
model.compile(optimizer="adam",loss="sparse_categorical_crossentropy",metrics=["acc"])


# X = np.array([[1.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,7.042,10.791,5.313,7.997,5.654,9.27,3.1],[2]])
# Y= np.array([1.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,7.042,10.791,5.313,7.997,5.654,9.27,3.1])
# Y[0:2]

#  softmax的损失函数用sparse_categorical_crossentropy 和categorical_crossentropy
#  独热编码时候用categorical_crossentropy:
# train_lable_onehot=tf.keras.utils.to_categorical(train_lable)

history=model.fit(train_image,train_lable,epochs=5)
model.evaluate(test_image,test_lable)
# 查看损失函数图像
plt.plot(history.epoch,history.history.get('loss'))
# 查看准确率图像
plt.plot(history.epoch,history.history.get('acc'))
#train_lable_onehot

画像観測データを直接見ることができます、plt.imshow(train_image [0])は靴です、

損失関数の変更:

正解率の変化:

おすすめ

転載: blog.csdn.net/yezonggang/article/details/106396244