Распознаем рукописные цифры с нейросетью на Python

Распознаем рукописные цифры с нейросетью на Python

Распознаем рукописные цифры с нейросетью на 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. В этом курсе вы получите глубокие знания о нейронных сетях, а также научитесь применять их на практике, создавая эффективные модели для реальных задач.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий