2018 年 4 月 24 日 — 作者:Margaret Maynard-Reid
本教程介绍了如何使用卷积神经网络 (CNN) 架构,利用 tf.keras 对 Fashion-MNIST 数据集进行分类。只需几行代码,您就可以定义并训练一个模型,该模型能够对图像进行分类,准确率超过 90%,即使没有进行太多优化。
Fashion-MNIST 可用作原始 MNIST 数据集… 的直接替代品。
# Note in Colab you can type "pip install" directly in the notebook
!pip install -q -U tensorflow>=1.8.0
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# Load the fashion-mnist pre-shuffled train data and test data
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.fashion_mnist.load_data()
print("x_train shape:", x_train.shape, "y_train shape:", y_train.shape)
# Show one of the images from the training dataset
plt.imshow(x_train[img_index])
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
model = tf.keras.Sequential()
# Must define the input shape in the first layer of the neural network
model.add(tf.keras.layers.Conv2D(filters=64, kernel_size=2, padding='same', activation='relu', input_shape=(28,28,1)))
model.add(tf.keras.layers.MaxPooling2D(pool_size=2))
model.add(tf.keras.layers.Dropout(0.3))
model.add(tf.keras.layers.Conv2D(filters=32, kernel_size=2, padding='same', activation='relu'))
model.add(tf.keras.layers.MaxPooling2D(pool_size=2))
model.add(tf.keras.layers.Dropout(0.3))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(256, activation='relu'))
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(10, activation='softmax'))
# Take a look at the model summary
model.summary()
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.fit(x_train,
y_train,
batch_size=64,
epochs=10,
validation_data=(x_valid, y_valid),
callbacks=[checkpointer])
# Evaluate the model on test set
score = model.evaluate(x_test, y_test, verbose=0)
# Print test accuracy
print('\n', 'Test accuracy:', score[1])
datasetmodel.predict(x_test)
进行预测/分类并对其进行可视化。如果标签为红色,则表示预测与真实标签不匹配;否则为绿色。
2018 年 4 月 24 日 — 作者:Margaret Maynard-Reid
本教程介绍了如何使用卷积神经网络 (CNN) 架构,利用 tf.keras 对 Fashion-MNIST 数据集进行分类。只需几行代码,您就可以定义并训练一个模型,该模型能够对图像进行分类,准确率超过 90%,即使没有进行太多优化。
Fashion-MNIST 可用作原始 MNIST 数据集… 的直接替代品。