Hiperparámetros de detección de objetos - 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 detección de objetos

En la solicitud CreateTrainingJob, especifique el algoritmo de capacitación que desee utilizar. También puede especificar hiperparámetros específicos de algoritmo que se utilizan para ayudar a calcular los parámetros del modelo desde un conjunto de datos de capacitación. En la siguiente tabla se enumeran los hiperparámetros proporcionados por Amazon SageMaker para entrenar el algoritmo de detección de objetos. Para obtener más información sobre cómo funciona la capacitación de objetos, consulte Cómo funciona la detección de objetos.

Nombre del parámetro Descripción
num_classes

El 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.

Obligatorio

Valores válidos: número entero positivo

num_training_samples

El número de ejemplos de capacitación en el conjunto de datos de entrada.

nota

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 será indefinido y la precisión distribuida de la capacitación podrá verse afectada.

Obligatorio

Valores válidos: número entero positivo

base_network

La arquitectura de red base a utilizar.

Opcional

Valores válidos: "vgg-16" o "resnet-50'

Valor predeterminado: 'vgg-16'

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, tal como se define en el hiperparámetro early_stopping_tolerance, a 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

El valor de tolerancia relativa que la mejora relativa en validation:mAP, la precisión media ponderada (mAP), es necesario para superar para evitar detención una temprana. Si la proporción de cambio en la mAP dividida por la mejor mAP anterior es inferior al conjunto de valor early_stopping_tolerance, la detención temprana considerará que no hay mejora. Se utiliza solo cuando early_stopping = True.

Opcional

Valores válidos: 0 ≤ número flotante ≤ 1

Valor predeterminado: 0,0

image_shape

El tamaño de la imagen para imágenes de entrada. Reescalamos la imagen de entrada a una imagen cuadrada con este tamaño. Recomendamos utilizar 300 y 512 para un mejor rendimiento.

Opcional

Valores válidos: número entero positivo ≥300

Predeterminado: 300

epochs

El número de fechas de inicio de capacitación.

Opcional

Valores válidos: número entero positivo

Valor predeterminado: 30

freeze_layer_pattern

La expresión regular (regex) para congelar capas en la red base. Por ejemplo, si establecemos freeze_layer_pattern = "^(conv1_|conv2_).*", cualquier capa con un nombre que contenga "conv1_" o "conv2_" se congelará, lo que significa que las ponderaciones de estas capas no se actualizan durante la capacitación. Los nombres de capa se pueden encontrar en los archivos de símbolo de red vgg16-symbol.json y resnet-50-symbol.json. Congelar una capa significa que sus ponderaciones no se pueden modificar más. Esto puede reducir considerablemente el tiempo de capacitación a cambio de pequeñas pérdidas en precisión. Esta técnica se utiliza generalmente en capacitación de transferencia dónde las capas inferiores de la red básica no tienen que volverse a capacitar.

Opcional

Valores válidos: cadena

Predeterminado: sin capas congeladas.

kv_store

El modo de sincronización de actualización de ponderación usado para la capacitación distribuido. Las ponderaciones pueden actualizarse de forma sincrónica o asíncrona 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 el tutorial de MXNet Distributed Training para obtener más información.

nota

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

Opcional

Valores válidos: 'dist_sync' o 'dist_async'

  • '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 una máquina individual 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.

Predeterminado: -

label_width

La anchura de la etiqueta de relleno de fuerza que se utiliza para la sincronización entre la capacitación y los datos de validación. Por ejemplo, si una imagen de los datos contiene un máximo de 10 objetos y cada comentario del objeto se especifica con 5 números, [class_id, izquierda, parte superior, ancho, alto], el label_width no puede tener una longitud inferior a (10*5 + longitud de información del encabezado). La información del encabezado suele ser de longitud 2. Le recomendamos que utilice un label_width ligeramente mayor para la capacitación, como 60 en este ejemplo.

Opcional

Valores válidos: número entero positivo lo suficientemente grande como para admitir la mayor información de comentarios en los datos.

Predeterminado: 350

learning_rate

La tasa de aprendizaje inicial.

Opcional

Valores válidos: número flotante en (0, 1]

Predeterminado: 0.001

lr_scheduler_factor

La proporción para reducir la tasa de aprendizaje. Utilizado en combinación con el parámetro lr_scheduler_step definido como lr_new = lr_old * lr_scheduler_factor.

Opcional

Valores válidos: número flotante en (0, 1)

Predeterminado: 0.1

lr_scheduler_step

Las fechas de inicio en las que reducir la tasa de aprendizaje. La tasa de aprendizaje se reduce en lr_scheduler_factor en las fechas de inicio (epochs) enumeradas en una cadena delimitada por comas: "epoch1, epoch2,...". Por ejemplo, si el valor se establece en "10, 20" y el lr_scheduler_factor se fija en 1/2, la tasa de aprendizaje será dividida a la mitad después de la décima fecha de inicio y de nuevo dividida a la mitad después de la vigésima fecha de inicio.

Opcional

Valores válidos: cadena

Valor predeterminado: cadena vacía

mini_batch_size

El tamaño del lote para la capacitación. En una configuración de varias GPU de una sola 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. Un gran mini_batch_size normalmente conduce a una capacitación más rápida, pero puede provocar un problema de falta de memoria. El uso de la memoria está relacionado con mini_batch_size, image_shape y la base_network arquitectura. Por ejemplo, en una sola instancia p3.2xlarge, el mayor mini_batch_size sin un error de falta de memoria es de 32 con base_network establecido en "resnet-50" y un image_shape de 300. Con la misma instancia de base de datos, puede usar 64 como mini_batch_size con la red base vgg-16 y un image_shape de 300.

Opcional

Valores válidos: número entero positivo

Predeterminado: 32

momentum

El impulso para sgd. No se tiene en cuenta para otros optimizadores.

Opcional

Valores válidos: número flotante en (0, 1]

Predeterminado: 0.9

nms_threshold

El umbral de supresión no máxima.

Opcional

Valores válidos: número flotante en (0, 1]

Predeterminado: 0.45

optimizer

Los tipos de optimizador. Para obtener más información sobre los valores de optimizador, consulte la MXNet's API.

Opcional

Valores válidos: ["sgd", "adam", "rmsprop", "adadelta"]

Predeterminada: "sgd"

overlap_threshold

La evaluación se solapa al umbral.

Opcional

Valores válidos: número flotante en (0, 1]

Predeterminado: 0.5

use_pretrained_model

Indica si usar un modelo capacitado previamente para capacitación. Si se establece en 1, se carga el modelo capacitado previamente con la arquitectura correspondiente y se utiliza para capacitación. De lo contrario, se realiza la capacitación de la red desde cero.

Opcional

Valores válidos: 0 o 1

Valor predeterminado: 1

weight_decay

El coeficiente de decremento de ponderación para sgd y rmsprop. No se tiene en cuenta para otros optimizadores.

Opcional

Valores válidos: número flotante en (0, 1)

Predeterminado: 0.0005