

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.

# Clasificación de imágenes - MXNet
<a name="image-classification"></a>

El algoritmo de clasificación de SageMaker imágenes de Amazon es un algoritmo de aprendizaje supervisado que admite la clasificación de múltiples etiquetas. Toma una imagen como entrada y genera una o varias etiquetas asignadas a esa imagen. Utiliza una red neuronal convolucional que puede entrenarse desde cero o mediante un aprendizaje por transferencia cuando no hay disponible un gran número de imágenes de entrenamiento. 

El formato de entrada recomendado para los algoritmos de clasificación de imágenes de Amazon SageMaker AI es Apache MXNet [Recordio](https://mxnet.apache.org/api/faq/recordio). Sin embargo, también pueden utilizar imágenes sin procesar en formato .jpg o .png. Consulte [este análisis](https://mxnet.apache.org/api/architecture/note_data_loading) para obtener una visión general amplia sobre la preparación y la carga eficientes de datos en sistemas de machine learning. 

**nota**  
Para mantener una mejor interoperabilidad con los marcos de aprendizaje profundo existentes, esto difiere de los formatos de datos protobuf que suelen utilizar otros algoritmos de IA de Amazon SageMaker .

Para obtener más información sobre redes convolucionales, consulte: 
+ [Deep residual learning for image recognition](https://arxiv.org/abs/1512.03385) Kaiming He, et al., 2016 IEEE Conference on Computer Vision and Pattern Recognition
+ [ImageNet base de datos de imágenes](http://www.image-net.org/)
+ [Clasificación de imágenes con Gluon-CV y MXNet](https://gluon-cv.mxnet.io/build/examples_classification/index.html)

**Topics**
+ [Interfaz de entrada/salida para el algoritmo de clasificación de imágenes](#IC-inputoutput)
+ [Recomendación de instancias EC2 para el algoritmo de clasificación de imágenes](#IC-instances)
+ [Cuadernos de ejemplo de clasificación de imágenes](#IC-sample-notebooks)
+ [Funcionamiento de la clasificación de imágenes](IC-HowItWorks.md)
+ [Hiperparámetros de clasificación de imágenes](IC-Hyperparameter.md)
+ [Ajuste de un modelo de clasificación de imágenes](IC-tuning.md)

## Interfaz de entrada/salida para el algoritmo de clasificación de imágenes
<a name="IC-inputoutput"></a>

El algoritmo de clasificación de imágenes de SageMaker IA admite los tipos de contenido Recordio (`application/x-recordio`) e imagen (`image/png``image/jpeg`, y`application/x-image`) para el entrenamiento en modo archivo, y admite el tipo de contenido Recordio (`application/x-recordio`) para el entrenamiento en modo canalizado. Sin embargo también puede entrenar en modo de canalización con los archivos de imágenes (`image/png`, `image/jpeg` y `application/x-image`), sin necesidad de crear archivos RecordIO, mediante el formato de manifiesto aumentado.

El entrenamiento distribuido es compatible con el modo de archivo y el modo de canalización. Si utiliza el tipo de contenido RecordIO en el modo de canalización, debe establecer el `S3DataDistributionType` del `S3DataSource` en `FullyReplicated`. El algoritmo admite un modelo totalmente replicado en el que los datos se copian en cada máquina.

El algoritmo admite `image/png`, `image/jpeg` y `application/x-image` para la inferencia.

### Capacitación con el formato RecordIO
<a name="IC-recordio-training"></a>

Si utiliza el formato RecordIO para la capacitación, especifique ambos canales `train` y `validation` como valores para el parámetro `InputDataConfig` de la solicitud [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Especifique un archivo RecordIO (`.rec`) en el canal `train` y un archivo RecordIO en el canal `validation`. Establezca el tipo de canal para ambos canales en `application/x-recordio`. 

### Capacitación con formato de imagen
<a name="IC-image-training"></a>

Si utiliza el formato de imagen para la capacitación, especifique los canales `train`, `validation`, `train_lst` y `validation_lst` como valores para el parámetro `InputDataConfig` de la solicitud [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Especifique los datos de imagen individuales (archivos `.jpg` o `.png`) para los canales `train` y `validation`. Especifique un archivo `.lst` en cada uno de los canales `train_lst` y `validation_lst`. Establezca el tipo de canal para los cuatro canales en `application/x-image`. 

**nota**  
SageMaker La IA lee los datos de entrenamiento y validación por separado de diferentes canales, por lo que debes almacenar los datos de entrenamiento y validación en carpetas diferentes.

Un archivo `.lst` es un archivo separado por tabulaciones con tres columnas que contiene una lista de archivos de imagen. La primera columna especifica el índice de imagen, la segunda columna el índice de la etiqueta de clase para la imagen y la tercera columna la ruta relativa del archivo de imagen. El índice de imagen de la primera columna debe ser único en todas las imágenes. El conjunto de índices de etiqueta de clase se numeran sucesivamente y el la numeración debe comenzar por 0. Por ejemplo, 0 para la clase de gatos, 1 para la clase de perros, y así sucesivamente en las clases adicionales. 

 A continuación se muestra un ejemplo de un archivo `.lst`: 

```
5      1   your_image_directory/train_img_dog1.jpg
1000   0   your_image_directory/train_img_cat1.jpg
22     1   your_image_directory/train_img_dog2.jpg
```

Por ejemplo, si sus imágenes de capacitación se almacenan en `s3://<your_bucket>/train/class_dog`, `s3://<your_bucket>/train/class_cat`, y así sucesivamente, especifique la ruta de su canal `train` como `s3://<your_bucket>/train`, que es el directorio de nivel superior de sus datos. En el archivo `.lst`, especifique la ruta relativa de un archivo individual denominado `train_image_dog1.jpg` en el directorio de clase `class_dog` como `class_dog/train_image_dog1.jpg`. También puede almacenar todos los archivos de imagen en un subdirectorio dentro del directorio `train`. En ese caso, utilice ese subdirectorio para la ruta relativa. Por ejemplo, `s3://<your_bucket>/train/your_image_directory`. 

### Capacitación con formato de imagen de manifiesto aumentado
<a name="IC-augmented-manifest-training"></a>

El formato de manifiesto aumentado le permite realizar la capacitación en modo de canalización mediante los archivos de imágenes sin necesidad de crear archivos RecordIO. Debe especificar los canales de capacitación y de validación como valores para el parámetro `InputDataConfig` de la solicitud [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Cuando utilice el formato, es necesario generar un archivo de manifiesto de S3 que contenga la lista de imágenes y sus comentarios correspondientes. El formato del archivo de manifiesto debe tener el formato [líneas de JSON](http://jsonlines.org/) en el que cada línea representa una muestra. Las imágenes se especifican utilizando la etiqueta `'source-ref'` que apunta a la ubicación de S3 de la imagen. Los comentarios se proporcionan bajo el valor del parámetro `"AttributeNames"` tal y como se especifica en la solicitud [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). También puede contener metadatos adicionales en la etiqueta de `metadata` pero el algoritmo los omite. En el siguiente ejemplo, los `"AttributeNames"` se incluyen en la lista de referencias de imágenes y anotaciones `["source-ref", "class"]`. El valor de etiqueta correspondiente es `"0"` para la primera imagen y `“1”` para la segunda imagen:

```
{"source-ref":"s3://image/filename1.jpg", "class":"0"}
{"source-ref":"s3://image/filename2.jpg", "class":"1", "class-metadata": {"class-name": "cat", "type" : "groundtruth/image-classification"}}
```

El orden de los archivos `"AttributeNames"` de entrada es importante a la hora de entrenar el ImageClassification algoritmo. Acepta datos canalizados en un orden específico, con `image` primero, seguido de `label`. Por lo tanto, en este ejemplo, los AttributeNames "" `"source-ref"` aparecen primero, seguidos de`"class"`. Cuando se utiliza el ImageClassification algoritmo con Augmented Manifest, el valor del `RecordWrapperType` parámetro debe ser`"RecordIO"`.

El entrenamiento de etiquetas múltiples también se admite mediante la especificación de una matriz de JSON de valores. El hiperparámetro `num_classes` debe establecerse para que coincida con el número total de clases. Hay dos formatos de etiqueta válidos: multi-hot y class-id. 

En el formato multi-hot, cada etiqueta es un vector codificado multi-hot de todas las clases, donde cada clase toma el valor de 0 o 1. En el siguiente ejemplo, existen tres clases. La primera imagen se etiqueta con las clases 0 y 2, mientras que la segunda imagen se etiqueta solo con la clase 2: 

```
{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "class": "[1, 0, 1]"}
{"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "class": "[0, 0, 1]"}
```

En el formato class-id, cada etiqueta es una lista de los identificadores de clase, de [0, `num_classes`), que se aplican al punto de datos. En su lugar, el ejemplo anterior se vería así:

```
{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "class": "[0, 2]"}
{"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "class": "[2]"}
```

El formato multifunción es el predeterminado, pero se puede establecer de forma explícita en el tipo de contenido con el siguiente `label-format` parámetro: `"application/x-recordio; label-format=multi-hot".` El formato de identificador de clase, que es el formato que genera GroundTruth, debe configurarse de forma explícita: `"application/x-recordio; label-format=class-id".`

Para obtener más información sobre archivos de manifiesto aumentado, consulte [Archivos de manifiesto aumentados para trabajos de entrenamiento](augmented-manifest.md).

### Entrenamiento incremental
<a name="IC-incremental-training"></a>

También puedes iniciar el entrenamiento de un nuevo modelo con los artefactos de un modelo que hayas entrenado previamente con IA. SageMaker El entrenamiento incremental ahorra tiempo de entrenamiento cuando quieres entrenar un nuevo modelo con datos iguales o similares. SageMaker Los modelos de clasificación de imágenes de IA solo se pueden integrar con otro modelo de clasificación de imágenes integrado y entrenado en SageMaker IA.

Para utilizar un modelo capacitado previamente, en la solicitud [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html), especifique el `ChannelName` como el "modelo" en el parámetro `InputDataConfig`. Establezca `ContentType` para el canal de modelo en `application/x-sagemaker-model` Los hiperparámetros de entrada del modelo nuevo y del modelo capacitado previamente cargado al canal de modelos tienen que tener la misma configuración para los parámetros de entrada `num_layers`, `image_shape` y `num_classes`. Estos parámetros definen la arquitectura de red. Para el archivo de modelo previamente entrenado, utilice los artefactos del modelo comprimidos (en formato.tar.gz) generados por AI. SageMaker Puede usar los formatos RecordIO o de imagen para los datos de entrada.

### Inferencia con el algoritmo Image Classification
<a name="IC-inference"></a>

Los modelos generados pueden alojarse para la inferencia y admiten formatos de imagen `.jpg` y `.png` codificados como tipo de contenido `image/png, image/jpeg` y `application/x-image`. El tamaño de la imagen de entrada se redimensiona automáticamente. La salida corresponde a los valores de probabilidad para todas las clases codificadas en formato JSON o en [formato de texto de líneas JSON](http://jsonlines.org/) para la transformación por lotes. El modelo de clasificación de imágenes procesa una sola imagen por solicitud por lo que devuelve únicamente una línea en el formato JSON o de líneas JSON. A continuación se muestra un ejemplo de una respuesta en formato de líneas JSON:

```
accept: application/jsonlines

 {"prediction": [prob_0, prob_1, prob_2, prob_3, ...]}
```

Para obtener más información sobre la capacitación y la inferencia, consulte las instancias de bloc de notas de muestra de clasificaciones de imágenes a las que se hace referencia en la introducción.

## Recomendación de instancias EC2 para el algoritmo de clasificación de imágenes
<a name="IC-instances"></a>

Para la clasificación de imágenes, admitimos instancias P2, P3, G4dn y G5. Recomendamos utilizar instancias de GPU con más memoria para la capacitación con tamaños grandes de lotes. También puede ejecutar el algoritmo en configuraciones de varias máquinas o varias GPU para la capacitación distribuida. Para la inferencia, se pueden usar instancias de CPU (como C4) o de GPU (P2, P3, G4dn o G5).

## Cuadernos de ejemplo de clasificación de imágenes
<a name="IC-sample-notebooks"></a>

Para ver un ejemplo de cuaderno que utiliza el algoritmo de clasificación de imágenes de SageMaker IA, consulte [Crear y registrar un modelo de clasificación de MXNet imágenes](https://github.com/aws-samples/amazon-sagemaker-pipelines-mxnet-image-classification/blob/main/image-classification-sagemaker-pipelines.ipynb) mediante canalizaciones. SageMaker Para obtener instrucciones sobre cómo crear instancias de Jupyter Notebook y acceder a ellas, que puede utilizar para ejecutar el ejemplo en SageMaker IA, consulte. [Instancias de Amazon SageMaker Notebook](nbi.md) Una vez que haya creado una instancia de bloc de notas y la haya abierto, seleccione la pestaña **Ejemplos de SageMaker IA** para ver una lista de todos los ejemplos de SageMaker IA. Los blocs de notas de clasificación de imágenes de ejemplo se encuentran en la sección sobre **introducción a algoritmos de Amazon**. Para abrir un cuaderno, haga clic en la pestaña **Usar** y seleccione **Crear copia**.

# Funcionamiento de la clasificación de imágenes
<a name="IC-HowItWorks"></a>

El algoritmo de clasificación de imágenes toma una imagen como entrada y la clasifica en una de las categorías de salida. El aprendizaje profundo ha revolucionado el dominio de clasificación de imágenes y ha conseguid un desempeño fantástico. Se han desarrollado varias redes de aprendizaje profundo [ResNet[DenseNet](https://arxiv.org/abs/1608.06993)](https://arxiv.org/abs/1512.03385), como [Inception](https://arxiv.org/pdf/1409.4842.pdf), etc., para que sean muy precisas a la hora de clasificar imágenes. Al mismo tiempo, se han realizado esfuerzos para recopilar datos de imágenes etiquetadas, que son esenciales para la formación de estas redes. [ImageNet](https://www.image-net.org/)es uno de esos grandes conjuntos de datos que tiene más de 11 millones de imágenes distribuidas en unas 11 000 categorías. Una vez que se entrena una red con ImageNet datos, también se puede utilizar para generalizarla con otros conjuntos de datos, simplemente reajustándola o ajustándola con precisión. En este enfoque de aprendizaje por transferencia, una red se inicializa con pesos (en este ejemplo, se aprende sobre ellos ImageNet), que luego se pueden ajustar para una tarea de clasificación de imágenes en un conjunto de datos diferente. 

La clasificación de imágenes en Amazon SageMaker AI se puede ejecutar en dos modos: formación completa y aprendizaje por transferencia. En el modo de capacitación completo, la red se inicializa con ponderaciones aleatorias y se capacita en los datos de usuario desde cero. En el modo de aprendizaje de transferencia, la red se inicializa con ponderaciones con capacitación previa y solo la capa superior conectada totalmente se inicializa con ponderaciones aleatorias. Después, toda la red se refina con los nuevos datos. En este modo, la capacitación puede lograrse incluso con conjuntos de datos más pequeños. Esto se debe a que ya se ha realizado la capacitación de la red y, por lo tanto, puede utilizarse en casos sin datos de capacitación suficientes.

# Hiperparámetros de clasificación de imágenes
<a name="IC-Hyperparameter"></a>

Los hiperparámetros son parámetros que se establecen antes de que un modelo de machine learning comience a aprender. El algoritmo de clasificación de imágenes integrado de Amazon SageMaker AI admite los siguientes hiperparámetros. Consulte [Ajuste de un modelo de clasificación de imágenes](IC-tuning.md) para obtener información sobre el ajuste de hiperparámetros de clasificación de imágenes. 


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| num\$1classes | Número de clases de salida. Este parámetro define las dimensiones de la salida de red y normalmente se establece en el número de clases en el conjunto de datos. Además de la clasificación multiclase, también se admite la clasificación multietiqueta. Consulte [Interfaz de entrada/salida para el algoritmo de clasificación de imágenes](image-classification.md#IC-inputoutput) para obtener detallse sobre cómo trabajar con la clasificación multietiqueta con archivos de manifiesto aumentados.  **Obligatorio** Valores válidos: número entero positivo  | 
| num\$1training\$1samples | Número de ejemplos de capacitación en el conjunto de datos de entrada. Si se produce una falta de coincidencia entre este valor y el número de muestras en el conjunto de capacitación, el comportamiento del parámetro `lr_scheduler_step` no se define y la precisión de la capacitación distribuida puede verse afectada. **Obligatorio** Valores válidos: número entero positivo  | 
| augmentation\$1type |  Tipo de aumento de datos. Las imágenes de entrada pueden aumentarse de distintas formas, como se especifica a continuación. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/IC-Hyperparameter.html) **Opcional**  Valores válidos: `crop`, `crop_color` o `crop_color_transform`. Valor predeterminado: no tiene  | 
| beta\$11 | beta1 para `adam`, es decir, la tasa de decremento exponencial para las estimaciones del primer momento. **Opcional**  Valores válidos: número flotante Rango en [0, 1]. Valor predeterminado: 0,9 | 
| beta\$12 | beta2 para `adam`, es decir, la tasa de decremento exponencial para las estimaciones del segundo momento. **Opcional**  Valores válidos: número flotante Rango en [0, 1]. Valor predeterminado: 0.999 | 
| checkpoint\$1frequency | Periodo para almacenar los parámetros de modelo (en número de fechas de inicio). Tenga en cuenta que todos los archivos de punto de control se guardan como parte del archivo de modelo final "model.tar.gz" y se cargan en S3 en la ubicación especificada del modelo. Esto aumenta el tamaño del archivo de modelo proporcionalmente al número de puntos de control guardados durante el entrenamiento. **Opcional** Valores válidos: número entero positivo no superior a `epochs` Valor predeterminado: ningún valor predeterminado (guarde el punto de comprobación en la época con la mejor precisión de validación) | 
| early\$1stopping | `True` para utilizar lógica de detención temprana durante la capacitación. `False` para no utilizarla. **Opcional** Valores válidos: `True` o `False` Valor predeterminado: `False` | 
| early\$1stopping\$1min\$1epochs | El número mínimo de fechas de inicio que deben ejecutarse antes de que pueda invocarse la lógica de detención temprana. Se utiliza solo cuando `early_stopping` = `True`. **Opcional** Valores válidos: número entero positivo Valor predeterminado: 10 | 
| early\$1stopping\$1patience | El número de fechas de inicio que esperar antes de finalizar la capacitación si no se realiza ninguna mejora en la métrica relevante. Se utiliza solo cuando `early_stopping` = `True`. **Opcional** Valores válidos: número entero positivo Valor predeterminado: 5 | 
| early\$1stopping\$1tolerance | Tolerancia relativa para medir una mejora en la métrica de validación de precisión. Si la proporción de la mejora en la precisión dividida por la mejor precisión anterior es inferior al conjunto de valores `early_stopping_tolerance`, la detención temprana considera que no se produce mejora. Se utiliza solo cuando `early_stopping` = `True`. **Opcional** Valores válidos: 0 ≤ número flotante ≤ 1 Valor predeterminado: 0,0 | 
| epochs | Número de fechas de inicio de capacitación. **Opcional** Valores válidos: número entero positivo Valor predeterminado: 30 | 
| eps | El valor épsilon para `adam` y `rmsprop`. Se suele establecer en un valor pequeño para evitar la división por 0. **Opcional** Valores válidos: número flotante Rango en [0, 1]. Valor predeterminado: 1e-8 | 
| gamma | El valor gamma para `rmsprop`, el factor de degradación para el promedio de movimiento del gradiente cuadrado. **Opcional** Valores válidos: número flotante Rango en [0, 1]. Valor predeterminado: 0,9 | 
| image\$1shape | Las dimensiones de imagen de entrada, que tienen el mismo tamaño que la capa de entrada de la red. El formato se define como '`num_channels`, alto, ancho'. La dimensión de imagen puede tomar cualquier valor, puesto que la red puede administrar distintas dimensiones de la entrada. Sin embargo, existen limitaciones de memoria si se utiliza una dimensión de imagen mayor. Los modelos prentrenados solo pueden usar un tamaño fijo de imagen (224 x 224). Las dimensiones de imagen típicas para la clasificación de imágenes son “3, 224, 224”. Esto es similar al conjunto de datos. ImageNet  Se produce un error en el entrenamiento si alguna imagen de entrada es más pequeña que este parámetro en cualquier dimensión. Si una imagen es más grande, se recorta una parte de la imagen y el área recortada se especifica en este parámetro. Si se establece el hiperparámetro `augmentation_type`, se hace un recorte aleatorio; de lo contrario, se hace un recorte central.  En la inferencia, las imágenes de entrada se redimensionan para ajustarlas a la `image_shape` que se utilizó durante el entrenamiento. La relación de aspecto no se conserva y las imágenes no se recortan. **Opcional** Valores válidos: cadena Valor predeterminado: “3, 224, 224” | 
| kv\$1store |  Modo de sincronización de las actualizaciones de ponderación durante la capacitación distribuida. Las actualizaciones de ponderación pueden actualizarse de forma sincrónica o asincrónica en las máquinas. Las actualizaciones sincrónicas suelen proporcionar una mejor precisión que las asincrónicas, pero pueden ser más lentas. Consulte la capacitación distribuida en MXNet para obtener más detalles. Este parámetro no es aplicable a la capacitación de una máquina. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/IC-Hyperparameter.html) **Opcional** Valores válidos: `dist_sync` o `dist_async` Valor predeterminado: no tiene  | 
| learning\$1rate | Tasa de aprendizaje inicial. **Opcional** Valores válidos: número flotante Rango en [0, 1]. Valor predeterminado: 0.1 | 
| lr\$1scheduler\$1factor | La proporción para reducir la tasa de aprendizaje utilizada junto con el parámetro `lr_scheduler_step`, que se define como `lr_new` = `lr_old` \$1 `lr_scheduler_factor`. **Opcional** Valores válidos: número flotante Rango en [0, 1]. Valor predeterminado: 0.1 | 
| lr\$1scheduler\$1step | Las fechas de inicio en las que reducir la tasa de aprendizaje. Tal y como se explica en el parámetro `lr_scheduler_factor`, `lr_scheduler_factor` reduce la tasa de aprendizaje en estas fechas de inicio. Por ejemplo, si el valor se establece en "10, 20", `lr_scheduler_factor` reduce la tasa de aprendizaje después de la décima fecha de inicio y `lr_scheduler_factor` de nuevo después de la vigésima fecha de inicio. Las fechas de inicio se delimitan mediante ",". **Opcional** Valores válidos: cadena Valor predeterminado: no tiene | 
| mini\$1batch\$1size | El tamaño del lote para la capacitación. En una configuración de varias GPU de una máquina, cada GPU administra muestras de capacitación `mini_batch_size`/num\$1gpu. Para la capacitación de varias máquinas en el modo dist\$1sync, el tamaño de lote real es `mini_batch_size`\$1número de máquinas. Consulte los MXNet documentos para obtener más información. **Opcional** Valores válidos: número entero positivo Valor predeterminado: 32 | 
| momentum | El impulso de `sgd` y `nag`, pasado por alto para otros optimizadores. **Opcional** Valores válidos: número flotante Rango en [0, 1]. Valor predeterminado: 0,9 | 
| multi\$1label |  Marca que se debe utilizar para la clasificación de múltiples etiquetas donde es posible asignar a cada muestra múltiples etiquetas. Se registra la exactitud promedio en todas las clases. **Opcional** Valores válidos: 0 o 1 Valor predeterminado: 0  | 
| num\$1layers | Número de capas de la red. Para datos con un tamaño de imagen grande (por ejemplo, 224 x 224 ImageNet), sugerimos seleccionar el número de capas del conjunto [18, 34, 50, 101, 152, 200]. Para datos con un tamaño pequeño de imagen (por ejemplo, 28x28, como CIFAR), sugerimos que se seleccione el número de capas del conjunto [20, 32, 44, 56, 110]. El número de capas de cada conjunto se basa en el ResNet papel. Para transferir el aprendizaje, el número de capas define la arquitectura de la red de base y, por lo tanto, solo puede seleccionarse desde el conjunto [18, 34, 50, 101, 152, 200]. **Opcional** Valores válidos: número entero positivo [18, 34, 50, 101, 152, 200] o [20, 32, 44, 56, 110] Valor predeterminado: 152 | 
| optimizer | El tipo de optimizador. Para obtener más información sobre los parámetros de los optimizadores, consulta MXNet la API. **Opcional** Valores válidos: uno de entre los valores `sgd`, `adam`, `rmsprop` o `nag` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/IC-Hyperparameter.html) Valor predeterminado: `sgd` | 
| precision\$1dtype | La precisión de las ponderaciones que se utilizan para la capacitación. El algoritmo puede utilizar precisión única (`float32`) o la mitad de precisión (`float16`) para las ponderaciones. El uso de la mitad de precisión para ponderaciones resulta en una reducción del consumo de memoria. **Opcional** Valores válidos: `float32` o `float16` Valor predeterminado: `float32` | 
| resize | Número de píxeles en el lado más corto de una imagen después de cambiarla de tamaño para el entrenamiento. Si no se establece el parámetro, se utilizan los datos de capacitación sin el cambio de tamaño. El parámetro debe ser mayor que los componentes de ancho y alto de `image_shape` para evitar errores en el entrenamiento. **Necesario** cuando se utilizan tipos de contenido de imagen **Opcional** cuando se utiliza el tipo de contenido RecordIO Valores válidos: número entero positivo Valor predeterminado: no tiene  | 
| top\$1k | Informa de la precisión de top-k durante la capacitación. Este parámetro tiene que ser superior a 1, ya que la precisión de la capacitación top-1 es la misma que la precisión de capacitación normal de la que se ha informado. **Opcional** Valores válidos: número entero positivo superior a 1 Valor predeterminado: no tiene | 
| use\$1pretrained\$1model | Marca para usar un modelo de capacitación previa para la capacitación. Si se establece en 1, se carga el modelo de capacitación previa con el número correspondiente de capas y se utiliza para la capacitación. Solo la capa FC superior se reinicializa con ponderaciones aleatorias. De lo contrario, se realiza la capacitación de la red desde cero. **Opcional** Valores válidos: 0 o 1 Valor predeterminado: 0 | 
| use\$1weighted\$1loss |  Marca para utilizar pérdida de entropía cruzada ponderada para la clasificación de múltiples etiquetas (se utiliza solo cuando `multi_label` = 1), donde las ponderaciones se calculan en función de la distribución de clases. **Opcional** Valores válidos: 0 o 1 Valor predeterminado: 0  | 
| weight\$1decay | El decremento de ponderación del coeficiente para `sgd` y `nag`, pasado por alto para otros optimizadores. **Opcional** Valores válidos: número flotante Rango en [0, 1]. Valor predeterminado: 0.0001 | 

# Ajuste de un modelo de clasificación de imágenes
<a name="IC-tuning"></a>

El *ajuste de modelo automático*, también conocido como ajuste de hiperparámetros, encuentra la mejor versión de un modelo ejecutando muchas tareas que probar una serie de hiperparámetros en su conjunto de datos. Usted elige los hiperparámetros que pueden ajustarse, un rango de valores para cada uno de ellos y una métrica objetiva. Puede elegir la métrica objetiva de las métricas que el algoritmo computa. El ajuste de modelo automático busca los hiperparámetros elegidos para encontrar la combinación de valores que obtienen el modelo que optimiza la métrica objetiva.

Para obtener más información acerca del ajuste de modelos, consulte [Ajuste automático de modelos con IA SageMaker](automatic-model-tuning.md).

## Métricas contabilizadas por el algoritmo de clasificación de imágenes
<a name="IC-metrics"></a>

El algoritmo de clasificación de imágenes es un algoritmo supervisado. Informa una métrica de precisión que se calcula durante la capacitación. Al ajustar el modelo, elija esta métrica como la métrica objetivo.


| Nombre de métrica | Description (Descripción) | Dirección de optimización | 
| --- | --- | --- | 
| validation:accuracy | La ratio del número de predicciones correctas con respecto al número total de predicciones realizadas. | Maximizar | 

## Hiperparámetros de clasificación de imágenes ajustables
<a name="IC-tunable-hyperparameters"></a>

Ajuste un modelo de clasificación de imágenes con los siguientes hiperparámetros. Estos son los hiperparámetros con mayor impacto en las métricas de objetivos de clasificación de imágenes: `mini_batch_size`, `learning_rate` y `optimizer`. Ajuste los hiperparámetros relacionados con el optimizador, como, por ejemplo, `momentum`, `weight_decay`, `beta_1`, `beta_2`, `eps` y `gamma`, en función del `optimizer` seleccionado. Por ejemplo, utilice `beta_1` y `beta_2` solo cuando `adam` es el `optimizer`.

Para obtener más información sobre qué hiperparámetros se utilizan en cada optimizador, consulte [Hiperparámetros de clasificación de imágenes](IC-Hyperparameter.md).


| Nombre del parámetro | Tipo de parámetro | Intervalos recomendados | 
| --- | --- | --- | 
| beta\$11 | ContinuousParameterRanges | MinValue: 1e-6, 0.999 MaxValue | 
| beta\$12 | ContinuousParameterRanges | MinValue: 1e-6, 0,999 MaxValue | 
| eps | ContinuousParameterRanges | MinValue: 1e-8,: 1,0 MaxValue | 
| gamma | ContinuousParameterRanges | MinValue: 1e-8, 0,999 MaxValue | 
| learning\$1rate | ContinuousParameterRanges | MinValue: 1e-6,: 0,5 MaxValue | 
| mini\$1batch\$1size | IntegerParameterRanges | MinValue: 8, 512 MaxValue | 
| momentum | ContinuousParameterRanges | MinValue: 0,0, MaxValue 0,999 | 
| optimizer | CategoricalParameterRanges | ['sgd', ‘adam’, ‘rmsprop’, 'nag'] | 
| weight\$1decay | ContinuousParameterRanges | MinValue: 0,0, MaxValue 0,999 | 