Interfaz de entrada y salida para el algoritmo de clasificación de imágenes TensorFlow - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Interfaz de entrada y salida para el algoritmo de clasificación de imágenes TensorFlow

Cada uno de los modelos previamente entrenados que aparecen en TensorFlow Hub Models se puede ajustar a cualquier conjunto de datos con cualquier número de clases de imágenes. Ten cuidado con el formato de los datos de entrenamiento para introducirlos en el modelo de clasificación de imágenes. TensorFlow

  • Formato de entrada de datos de entrenamiento: los datos de entrenamiento deben ser un directorio con el mismo número de subdirectorios que el número de clases. Cada subdirectorio debe contener imágenes que pertenezcan a esa clase en formato .jpg, .jpeg o .png.

A continuación se muestra un ejemplo con una estructura de directorios de entrada. Este conjunto de datos de ejemplo tiene dos clases: roses y dandelion. Los archivos de imagen de cada carpeta de clases pueden tener cualquier nombre. El directorio de entrada debe alojarse en un bucket de Amazon S3 con una ruta similar a s3://bucket_name/input_directory/. Tenga en cuenta que es obligatorio incluir / al final.

input_directory |--roses |--abc.jpg |--def.jpg |--dandelion |--ghi.jpg |--jkl.jpg

Los modelos entrenados generan archivos de asignación de etiquetas que asignan los nombres de las carpetas de clases a los índices en la lista de probabilidades de las clases de salida. Esta asignación está en orden alfabético. Por ejemplo, en el caso anterior, la clase “diente de león” es de índice 0 y la clase “rosas” es de índice 1.

Tras el entrenamiento, dispondrá de un modelo ajustado que podrá seguir entrenando de forma incremental; también podrá implementarlo para hacer inferencias. El TensorFlow algoritmo de clasificación de imágenes añade automáticamente una firma de preprocesamiento y posprocesamiento al modelo ajustado para que pueda tomar imágenes como probabilidades de entrada y devolver clases de probabilidades. El archivo que asigna los índices de clases en las etiquetas de las clases se guarda junto con los modelos.

Entrenamiento incremental

Puedes iniciar el entrenamiento de un nuevo modelo con artefactos de un modelo que hayas entrenado previamente con IA. SageMaker El entrenamiento incremental supone un ahorro de tiempo cuando queremos entrenar un nuevo modelo con datos idénticos o similares.

nota

Solo puedes combinar un modelo de clasificación de imágenes mediante SageMaker IA con otro TensorFlow modelo de clasificación de imágenes entrenado en SageMaker IA. TensorFlow

Para el entrenamiento incremental, puede utilizar cualquier conjunto de datos, siempre y cuando el conjunto de clases siga siendo el mismo. El paso de entrenamiento incremental es similar al paso de ajuste; la diferencia es que, en lugar de comenzar con un modelo previamente entrenado, se comienza con un modelo ajustado existente. Para ver un ejemplo de entrenamiento gradual con el TensorFlow algoritmo de clasificación de imágenes mediante SageMaker IA, consulte el cuaderno de muestra Introducción a SageMaker TensorFlow la clasificación de imágenes.

Inferencia con el algoritmo de clasificación de imágenes TensorFlow

Puede alojar el modelo ajustado que resulta de su formación en clasificación de TensorFlow imágenes para realizar inferencias. Cualquier imagen de entrada para la inferencia debe estar en el formato .jpg, jpeg o .png y ser del tipo de contenido application/x-image. El TensorFlow algoritmo de clasificación de imágenes cambia el tamaño de las imágenes de entrada automáticamente.

Al ejecutar la inferencia, se obtienen valores de probabilidad, etiquetas de clase para todas las clases y la etiqueta pronosticada correspondiente al índice de clase con la probabilidad más alta codificada en JSON formato. El TensorFlow modelo de clasificación de imágenes procesa una sola imagen por solicitud y genera solo una línea. El siguiente es un ejemplo de una respuesta de JSON formato:

accept: application/json;verbose {"probabilities": [prob_0, prob_1, prob_2, ...], "labels": [label_0, label_1, label_2, ...], "predicted_label": predicted_label}

Si accept se establece en application/json, el modelo solo genera probabilidades. Para obtener más información sobre el entrenamiento y la inferencia con el TensorFlow algoritmo de clasificación de imágenes, consulte el cuaderno de muestra Introducción a SageMaker TensorFlow la clasificación de imágenes.