返回

TensorFlow 教程:机器学习基础① 对服装图像进行分类

人工智能

无论你是机器学习新手还是经验丰富的从业者,TensorFlow 都是一个功能强大的工具,可以帮助你构建各种模型。在本教程系列的第一部分中,我们将介绍如何使用 TensorFlow 的 Keras API 对服装图像进行分类。

本文档的重点是机器学习的基础知识,它将引导你完成构建和训练一个简单的神经网络的过程,该神经网络可以识别不同类型的服装。我们将使用流行的 fashion MNIST 数据集,该数据集包含 70,000 张图像,分为 10 个类别。

准备好开始了吗?让我们深入了解 TensorFlow 的世界!

1. 导入 TensorFlow 和 Keras

首先,让我们导入必要的 TensorFlow 和 Keras 模块。

import tensorflow as tf
from tensorflow.keras import datasets, models, layers

2. 加载数据

接下来,我们需要加载 fashion MNIST 数据集。此数据集包含 70,000 张 28x28 灰度图像,分为 10 个类别,包括衬衫、裤子、连衣裙等。

(train_images, train_labels), (test_images, test_labels) = datasets.fashion_mnist.load_data()

3. 准备数据

在训练神经网络之前,我们需要对数据进行一些准备工作。首先,我们将图像归一化到 0 到 1 之间的范围内。

train_images = train_images / 255.0
test_images = test_images / 255.0

4. 构建神经网络

现在,让我们构建一个简单的神经网络来对服装图像进行分类。我们将使用一个卷积神经网络(CNN),它是一种专门用于图像分类的网络类型。

model = models.Sequential([
  layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
  layers.MaxPooling2D((2, 2)),
  layers.Conv2D(64, (3, 3), activation='relu'),
  layers.MaxPooling2D((2, 2)),
  layers.Flatten(),
  layers.Dense(128, activation='relu'),
  layers.Dense(10, activation='softmax')
])

5. 编译模型

在训练模型之前,我们需要对其进行编译。编译步骤涉及指定损失函数、优化器和指标。

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

6. 训练模型

现在,我们可以开始训练模型了。训练过程需要一些时间,具体取决于你使用的硬件。

model.fit(train_images, train_labels, epochs=10)

7. 评估模型

训练完成后,我们可以评估模型在测试数据集上的性能。

test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)
print('\nTest accuracy:', test_acc)

结论

恭喜你!你已经成功训练了一个神经网络来对服装图像进行分类。这只是机器学习领域的众多应用之一。在接下来的教程中,我们将深入探讨更高级的主题,例如卷积神经网络和自然语言处理。

继续学习,探索机器学习的广阔世界。