Compartir tecnología

Clasificación de imágenes con Python y TensorFlow: empezando desde cero

2024-07-12

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

introducción

La clasificación de imágenes es una tarea básica en visión por computadora, que permite a las computadoras identificar automáticamente objetos en las imágenes. En este artículo, utilizaremos Python y TensorFlow para implementar un modelo de clasificación de imágenes simple para ayudar a todos a comprender los conceptos básicos de la tecnología de inteligencia artificial.

Preparación

Primero, necesitamos instalar algunas bibliotecas de Python necesarias. Abra una terminal de línea de comando y ejecute el siguiente comando:

pip install tensorflow numpy matplotlib

Cargar conjunto de datos

Usaremos el famoso conjunto de datos MNIST, que contiene imágenes de dígitos escritos a mano (0 a 9). TensorFlow ya tiene este conjunto de datos integrado, por lo que podemos cargarlo fácilmente.

  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

modelo de construcción

Usaremos un modelo de red neuronal simple para la clasificación de imágenes. Este modelo contiene una capa de entrada (capa aplanada), dos capas completamente conectadas (capa densa) y una capa de salida.

  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'])

Modelo de entrenamiento

Ahora podemos entrenar el modelo. Usaremos los datos de entrenamiento (x_train, y_train) para entrenar el modelo y los datos de prueba (x_test, y_test) para evaluar el rendimiento del modelo.

  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)

imagen predicha

Una vez completado el entrenamiento, podemos usar el modelo para predecir nuevas imágenes. Aquí se explica cómo hacer predicciones sobre una imagen a partir de los datos de prueba.

  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)

Resumir

En este artículo, comenzamos desde cero e implementamos un modelo de clasificación de imágenes simple usando Python y TensorFlow. A través de este ejemplo, aprendimos cómo cargar datos, construir un modelo, entrenar el modelo y hacer predicciones. Espero que este artículo pueda ayudarlo a comenzar con la tecnología de inteligencia artificial e inspirar su interés en seguir explorando este campo.


Este artículo presenta cómo implementar un modelo de clasificación de imágenes simple usando Python y TensorFlow, y proporciona ejemplos de código detallados para ayudarlo a completar esta tarea paso a paso. En la actualidad, Python también es muy popular. Por supuesto, el autor no puede dejar de avanzar y adoptar la tecnología de vanguardia. Los idiomas son todos iguales, ¡solo apréndelos!