Использование нейронных сетей для классификации изображений с помощью Keras и TensorFlow: пошаговое...

Использование нейронных сетей для классификации изображений: руководство с Keras и TensorFlow

Использование нейронных сетей для классификации изображений: пошаговое руководство

Введение

Нейронные сети являются мощными инструментами для классификации изображений. В этой статье мы продемонстрируем пошаговый процесс использования нейронных сетей для классификации изображений с использованием Keras и TensorFlow.

Подготовка данных

Для начала нам нужно собрать набор данных, содержащий изображения. Мы будем использовать набор данных CIFAR-10, который состоит из 60 000 изображений, разделенных на 10 классов: автомобили, самолеты, птицы, кошки, олени, собаки, лягушки, лошади, корабли и грузовики.

Загрузка и предварительная обработка данных

# Загрузите набор данных CIFAR-10
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()

# Нормализуйте данные изображений
x_train = x_train.astype("float32") / 255
x_test = x_test.astype("float32") / 255

# Преобразуйте метки классов в категориальные векторы
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)

Создание архитектуры нейронной сети

Мы будем использовать простую сверточную нейронную сеть (CNN):

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

Компиляция модели

model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])

Отображение модели

model.summary()

Обучение модели

history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

Оценка модели

loss, accuracy = model.evaluate(x_test, y_test)
print(f"Потеря: {loss}")
print(f"Точность: {accuracy}")

Сохранение модели

model.save("модель.h5")

Использование обученной модели

Обученную модель можно использовать для классификации новых изображений:

# Загрузите новое изображение
new_image = ...

# Предсказание класса
prediction = model.predict(new_image)

# Получение класса с наивысшей вероятностью
predicted_class = np.argmax(prediction)

Заключение

Нейронные сети являются мощными инструментами для классификации изображений. В этой статье мы продемонстрировали пошаговый процесс использования нейронных сетей для классификации изображений с использованием Keras и TensorFlow.

To leave a comment you need to Login / Create account