如何使用TensorFlow来验证Python中Fashion MNIST的预测?

如何使用TensorFlow来验证Python中Fashion MNIST的预测?

简介

TensorFlow是一个开源软件库,用于构建和训练机器学习模型。其中一个最流行的数据集是Fashion MNIST,它包含了10个类别的衣服图片。在本文中,我们将探讨如何使用TensorFlow来验证Python中Fashion MNIST的预测。

更多Python文章,请阅读:Python 教程

下载并导入MNIST数据集

首先,我们需要从TensorFlow中导入我们需要的一些库和数据集。

import tensorflow as tf

(x_train, y_train), (x_test, y_test) = tf.keras.datasets.fashion_mnist.load_data()

这里我们使用了TensorFlow中自带的Fashion MNIST数据集,其中训练集和测试集已经被分别赋值给x_train,y_train,x_test和y_test。

数据可视化

让我们来看看整个数据集中的一些例子,并且看看这些例子被正确分类的频率。

import matplotlib.pyplot as plt

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

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(x_train[i], cmap=plt.cm.binary)
    plt.xlabel(class_names[y_train[i]])
plt.show()

这段代码使用了matplotlib库在一个5×5的图像网格中展示了前25个图片。每个图片下都有一个标签,对应这个图片所表示的类别。

创建模型

接下来,我们将为数据集创建一个基于神经网络的模型。在这个例子中,我们使用Sequential API进行模式构建。该模型包含了两个隐藏层和一个输出层。在我们的第一个隐藏层中,我们使用ReLU作为激活函数,并将它设置为有128个神经元。我们的第二个隐藏层设置为有64个神经元。最后,我们使用softmax作为我们的输出层激活函数,以给出每个输入图像属于不同类别的概率。

model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

编译模型

在完成了模型构建后,我们还需要进行编译以生成一个可训练的模型。在这个例子中,我们使用了adam优化器,并使用交叉熵损失函数和精度度量。

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

训练模型

我们已经完成了模型构建和编译,现在可以使用我们的数据集来训练模型了。

model.fit(x_train, y_train, epochs=10)

在这个例子中,我们将两个输入数据集(x_train和y_train)提供给了我们的模型,使用10个时期(也就是我们的模型将在整个数据集上迭代10次)进行训练。

评估模型

在完成了模型的训练后,我们可以使用测试数据集来评估模型的表现情况。

test_loss, test_accuracy = model.evaluate(x_test, y_test)

print('Test accuracy:', test_accuracy)

在本例中,我们评估了测试数据集,并打印了测试得分。

预测美观的衣服

在完成了模型的训练和评估后,我们可以使用它来预测美观的衣服。

predictions = model.predict(x_test)

import numpy asas np

for i in range(5):
    plt.grid(False)
    plt.imshow(x_test[i], cmap=plt.cm.binary)
    plt.xlabel("Actual: " + class_names[y_test[i]])
    plt.title("Prediction " + class_names[np.argmax(predictions[i])])
    plt.show()

在本例中,我们使用了测试集的前5个样本来进行测试。我们首先绘制了每个样本的实际标签下的图像,然后绘制标签最可能匹配的预测标签的图像。

这个例子的输出应该显示出5个标签,颜色与实际标签相同,而灰色的就是预测的标签。

结论

在本文中,我们已经学习了如何使用TensorFlow来验证Python中的Fashion MNIST预测。我们已经下载并导入MNIST数据集,使用matplotlib库对其进行可视化,建立了一个基于神经网络的模型,并对模型进行了编译和训练。在最后,我们使用测试集对数据进行评估。通过这个例子,我们可以了解神经网络的构建和训练过程,并证明了Python和TensorFlow是构建模型的优秀工具。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程