В мире машинного обучения и компьютерного зрения набор данных Fashion MNIST стал популярным эталоном для задач классификации изображений. Он состоит из 60 000 изображений модных вещей в оттенках серого, разделенных на десять различных категорий. В этой статье блога мы погрузимся в увлекательную область классификации моды с помощью TensorFlow, мощной среды глубокого обучения. Итак, хватайте свое снаряжение для кодирования и начнем!
Метод 1. Загрузка набора данных Fashion MNIST:
Для начала нам нужно загрузить набор данных Fashion MNIST в нашу среду TensorFlow. К счастью, TensorFlow предоставляет удобный API для простой загрузки и доступа к этому набору данных. Давайте посмотрим на фрагмент кода ниже:
import tensorflow as tf
from tensorflow.keras.datasets import fashion_mnist
# Load the Fashion MNIST dataset
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
# Inspect the dataset
print("Training set shape:", x_train.shape)
print("Training labels shape:", y_train.shape)
print("Testing set shape:", x_test.shape)
print("Testing labels shape:", y_test.shape)
Метод 2: предварительная обработка данных.
Прежде чем мы начнем обучать наш классификатор моды, очень важно предварительно обработать данные. Этот шаг включает в себя нормализацию значений пикселей и изменение формы входных данных в соответствии с требованиями модели. Вот фрагмент кода, демонстрирующий этапы предварительной обработки данных:
# Normalize pixel values
x_train = x_train / 255.0
x_test = x_test / 255.0
# Reshape the input data
x_train = x_train.reshape(-1, 28, 28, 1)
x_test = x_test.reshape(-1, 28, 28, 1)
Метод 3: построение модели сверточной нейронной сети (CNN):
Сверточные нейронные сети (CNN) очень эффективны для задач классификации изображений. Давайте создадим простую модель CNN, используя API Keras TensorFlow:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# Create a CNN model
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(10, activation='softmax'))
# Compile the model
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
Метод 4: обучение и оценка модели:
Теперь, когда мы определили нашу модель, пришло время обучить ее на наборе данных Fashion MNIST и оценить ее производительность. Вот как этого можно добиться:
# Train the model
model.fit(x_train, y_train, epochs=10, batch_size=64, validation_data=(x_test, y_test))
# Evaluate the model
test_loss, test_acc = model.evaluate(x_test, y_test)
print("Test loss:", test_loss)
print("Test accuracy:", test_acc)
В этой статье мы рассмотрели различные методы работы с набором данных Fashion MNIST с использованием TensorFlow. Мы научились загружать набор данных, предварительно обрабатывать данные, строить модель CNN и обучать ее классификации моды. Используя возможности TensorFlow, вы сможете открыть потрясающие возможности в области компьютерного зрения и распознавания изображений.