Algoritmo y práctica de minería de datos (12): use tf.keras para implementar la clasificación de imágenes fashion_MNIST

fashion_MNIST es un conjunto de datos de clasificación de imágenes manuscritas, principalmente para algunos gráficos de coincidencia de ropa. El conjunto de datos es relativamente pequeño y es un conjunto de datos adecuado para la práctica práctica. También es el primer ejemplo de clasificación múltiple. Utiliza el softmax función de pérdida para el entrenamiento; softmax garantiza la salida La clasificación es una probabilidad, por lo que la probabilidad de los resultados de la clasificación suman 1;

Esta es la primera vez que se utiliza un conjunto de datos de imágenes. Por lo general, se requiere una red neuronal convolucional para extraer las características de los datos. El conjunto de datos en sí son algunos datos con características (el límite de la imagen es relativamente claro). Es directo entrenamiento, como los siguientes tacones altos, el límite de características del conjunto de datos es obvio:

 La implementación es la siguiente:

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

Puede ver directamente los datos de observación de la imagen, plt.imshow (train_image [0]) es un zapato,

Cambios en la función de pérdida:

Cambios en la tasa de precisión:

Supongo que te gusta

Origin blog.csdn.net/yezonggang/article/details/106396244
Recomendado
Clasificación