Hiperparámetros de clasificación de imágenes - Amazon SageMaker

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.

Hiperparámetros de clasificación de imágenes

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 SageMaker integrado en Amazon admite los siguientes hiperparámetros. Consulte Ajuste de un modelo de clasificación de imágenes para obtener información sobre el ajuste de hiperparámetros de clasificación de imágenes.

Nombre del parámetro Descripción
num_classes

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 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_training_samples

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_type

Tipo de aumento de datos. Las imágenes de entrada pueden aumentarse de distintas formas, como se especifica a continuación.

  • crop: permite aleatoriamente la imagen y voltear la imagen horizontalmente.

  • crop_color: además de "cortar", existen tres valores aleatorios en el rango [-36, 36], [-50, 50] y se han agregado [-50, 50] a los canales correspondientes de matiz, saturación y brillo respectivamente.

  • crop_color_transform: además de crop_color, las transformaciones aleatorias, incluidas las variaciones de la relación de aspecto, corte y rotación, se aplican a la imagen. El ángulo de rotación máximo es de 10 grados, la proporción máxima de corte es 0,1 y la proporción máxima de cambio de aspecto es de 0,25.

Opcional

Valores válidos: crop, crop_color o crop_color_transform.

Valor predeterminado: no tiene

beta_1

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_2

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_frequency

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_stopping

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_stopping_min_epochs

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_stopping_patience

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_stopping_tolerance

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_shape

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”. Es similar al ImageNet conjunto de datos.

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_store

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 información.

Este parámetro no es aplicable a la capacitación de una máquina.

  • dist_sync: los gradientes se sincronizan después de cada lote con todos los procesos de trabajo. Con dist_sync, el tamaño de lote significa ahora el tamaño de lote utilizado en cada máquina. Por lo tanto, si hay n máquinas y utilizamos el tamaño de lote b, dist_sync se comporta un elemento local con el tamaño de lote n*b.

  • dist_async: realiza actualizaciones asíncronas. Las ponderaciones se actualizan cuando se reciben los gradientes desde cualquier máquina y las actualizaciones de ponderación son atómicas. Sin embargo, el orden no se garantiza.

Opcional

Valores válidos: dist_sync o dist_async

Valor predeterminado: no tiene

learning_rate

Tasa de aprendizaje inicial.

Opcional

Valores válidos: número flotante Rango en [0, 1].

Valor predeterminado: 0.1

lr_scheduler_factor

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 * lr_scheduler_factor.

Opcional

Valores válidos: número flotante Rango en [0, 1].

Valor predeterminado: 0.1

lr_scheduler_step

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_batch_size

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_gpu. Para la capacitación de varias máquinas en el modo dist_sync, el tamaño de lote real es mini_batch_size*número de máquinas. Consulte los documentos de MXNet 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_label

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_layers

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 depende del 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 de los parámetros para los optimizadores, consulte la API de MXNet.

Opcional

Valores válidos: uno de entre los valores sgd, adam, rmsprop o nag

Valor predeterminado: sgd

precision_dtype

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_k

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_pretrained_model

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_weighted_loss

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_decay

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