Interfaz de entrada/salida para el algoritmo Image Classification - TensorFlow
Todos los modelos prentrenados que se enumeran en los modelos de TensorFlow Hub se pueden refinarse en cualquier conjunto de datos compuesto por cualquier número de clases de imagen. Es importante que piense en cómo va a dar formato a los datos de entrenamiento para la entrada del modelo Image Classification - 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://. Tenga en cuenta que es obligatorio incluir bucket_name/input_directory// 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 de ajuste fino que podrá seguir entrenando de forma incremental; también podrá implementarlo para hacer inferencias. El algoritmo Image Classification - TensorFlow agrega automáticamente una firma de preprocesamiento y posprocesamiento al modelo de ajuste fino para que pueda tomar imágenes como probabilidades de clase de entrada y devolución. El archivo que asigna los índices de clases en las etiquetas de las clases se guarda junto con los modelos.
Entrenamiento incremental
También puede aplicar valores de inicialización en el entrenamiento de un nuevo modelo con los artefactos de un modelo que ya ha entrenado previamente con SageMaker AI. El entrenamiento incremental supone un ahorro de tiempo cuando queremos entrenar un nuevo modelo con datos idénticos o similares.
nota
Solo puede combinar un modelo Image Classification - TensorFlow de SageMaker con otro modelo Image Classification - TensorFlow entrenado en SageMaker AI.
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 de ajuste fino existente. Para ver un ejemplo de entrenamiento incremental con el algoritmo Image Classification - TensorFlow de SageMaker AI, consulte el cuaderno de ejemplo Introduction to SageMaker TensorFlow - Image Classification
Inferencia con el algoritmo Image Classification - TensorFlow
Puede alojar el modelo de ajuste fino generado por el entrenamiento de Image Classification - TensorFlow para llevar a cabo 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 algoritmo Image Classification - TensorFlow 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 formato JSON. El modelo Image Classification - TensorFlow procesa una sola imagen por solicitud y genera solo una línea. Lo siguiente es un ejemplo de una respuesta en formato JSON:
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 algoritmo Image Classification - TensorFlow, consulte el cuaderno de ejemplo Introduction to SageMaker TensorFlow - Image Classification