Распознаем рукописные цифры с нейросетью на Python
Нейронные сети становятся все более популярными в решении задач, связанных с обработкой изображений, распознаванием речи и других сложных задачах. В этой статье мы рассмотрим, как создать простую нейросеть на языке программирования Python с использованием библиотеки TensorFlow. Мы построим модель, способную классифицировать изображения рукописных цифр из набора данных MNIST.
Установка Необходимых Библиотек
Для начала, нам потребуется установить библиотеку TensorFlow. Это можно сделать, выполнив следующую команду:
pip install tensorflow
Подготовка Данных
MNIST — это известный набор данных, содержащий изображения рукописных цифр от 0 до 9. Мы используем его в качестве тренировочного и тестового набора данных.
import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import mnist
# Загрузка и подготовка данных
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
train_images = train_images.reshape((60000, 28, 28, 1)).astype('float32') / 255
test_images = test_images.reshape((10000, 28, 28, 1)).astype('float32') / 255
Создание Модели Нейронной Сети
Наша модель будет состоять из нескольких сверточных слоев (Conv2D) и пуллинговых слоев (MaxPooling2D), которые помогут извлечь особенности из изображений. Затем мы добавим несколько полносвязных слоев (Dense) для классификации изображений.
# Создание модели
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.Conv2D(64, (3, 3), activation='relu'),
layers.Flatten(),
layers.Dense(64, activation='relu'),
layers.Dense(10, activation='softmax')
])
Компиляция и Обучение Модели
После создания модели необходимо ее скомпилировать и обучить на тренировочных данных.
# Компиляция модели
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# Обучение модели
model.fit(train_images, train_labels, epochs=5, batch_size=64)
Оценка Модели
После обучения модели необходимо оценить ее эффективность на тестовых данных.
# Оценка модели
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f"Точность на тестовых данных: {test_acc:.4f}")
Заключение
Мы рассмотрели процесс создания простой нейронной сети с использованием TensorFlow для классификации изображений рукописных цифр. От загрузки и подготовки данных до обучения модели и оценки ее точности — каждый шаг играет важную роль в успешной разработке нейросети.
Если эта тема вас заинтересовала и вы хотите узнать больше о создании и обучении более сложных моделей, я рекомендую пройти видеокурс Создание нейросетей на Python. В этом курсе вы получите глубокие знания о нейронных сетях, а также научитесь применять их на практике, создавая эффективные модели для реальных задач.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.