Обмен технологиями

Классификация изображений с помощью Python и TensorFlow: начинаем с нуля

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

введение

Классификация изображений — основная задача компьютерного зрения, которая позволяет компьютерам автоматически идентифицировать объекты на изображениях. В этой статье мы будем использовать Python и TensorFlow для реализации простой модели классификации изображений, которая поможет каждому понять основы технологии искусственного интеллекта.

Подготовка

Во-первых, нам нужно установить некоторые необходимые библиотеки Python. Откройте терминал командной строки и выполните следующую команду:

pip install tensorflow numpy matplotlib

Загрузить набор данных

Мы будем использовать знаменитый набор данных MNIST, который содержит изображения рукописных цифр (от 0 до 9). В TensorFlow уже встроен этот набор данных, поэтому мы можем легко его загрузить.

  1. import tensorflow as tf
  2. from tensorflow.keras.datasets import mnist
  3. # 加载MNIST数据集
  4. (x_train, y_train), (x_test, y_test) = mnist.load_data()
  5. # 归一化图像数据
  6. x_train, x_test = x_train / 255.0, x_test / 255.0

Построить модель

Мы будем использовать простую модель нейронной сети для классификации изображений. Эта модель содержит входной слой (слой Flatten), два полностью связанных слоя (плотный слой) и выходной слой.

  1. from tensorflow.keras.models import Sequential
  2. from tensorflow.keras.layers import Dense, Flatten
  3. # 构建顺序模型
  4. model = Sequential([
  5. Flatten(input_shape=(28, 28)), # 输入层:将28x28的图像展平成一维数组
  6. Dense(128, activation='relu'), # 隐藏层:128个神经元,使用ReLU激活函数
  7. Dense(10, activation='softmax') # 输出层:10个神经元,使用Softmax激活函数
  8. ])
  9. # 编译模型
  10. model.compile(optimizer='adam',
  11. loss='sparse_categorical_crossentropy',
  12. metrics=['accuracy'])

Модель обучения

Теперь мы можем обучить модель. Мы будем использовать данные обучения (x_train, y_train) для обучения модели и тестовые данные (x_test, y_test) для оценки производительности модели.

  1. # 训练模型
  2. model.fit(x_train, y_train, epochs=5)
  3. # 评估模型
  4. test_loss, test_acc = model.evaluate(x_test, y_test)
  5. print('测试准确率:', test_acc)

предсказанное изображение

После завершения обучения мы можем использовать модель для прогнозирования новых изображений. Вот как можно сделать прогноз по изображению на основе тестовых данных.

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. # 选择一张测试图像
  4. img = x_test[0]
  5. plt.imshow(img, cmap='gray')
  6. plt.show()
  7. # 预测图像类别
  8. img = np.expand_dims(img, 0) # 扩展维度以匹配模型输入
  9. predictions = model.predict(img)
  10. predicted_class = np.argmax(predictions)
  11. print('预测类别:', predicted_class)

Подведем итог

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


В этой статье рассказывается, как реализовать простую модель классификации изображений с использованием Python и TensorFlow, а также приводятся подробные примеры кода, которые помогут вам выполнить эту задачу шаг за шагом. В настоящее время Python также очень популярен. Конечно, автор не может перестать двигаться вперед. Это правда, что он использует передовые технологии. Языки все одинаковые, просто выучите их!