Hiperparámetros para tareas de Computer Vision en el aprendizaje automático automatizado (v 1)
SE APLICA A: Azure ML del SDK de Python v1
Obtenga información sobre qué hiperparámetros están disponibles específicamente para las tareas de Computer Vision en experimentos de ML automatizados.
Con la compatibilidad con tareas de Computer Vision, puede controlar el algoritmo del modelo y los hiperparámetros de barrido. Estos algoritmos de modelo y los hiperparámetros se pasan como espacio de parámetros para el barrido. Aunque muchos de los hiperparámetros expuestos son independientes del modelo, hay instancias en que los hiperparámetros son específicos de la tarea o del modelo.
Hiperparámetros específicos del modelo
En esta tabla se resumen los hiperparámetros específicos del algoritmo yolov5
.
Nombre de parámetro | Descripción | Valor predeterminado |
---|---|---|
validation_metric_type |
Método de cálculo de métricas que se usará para las métricas de validación. Debe ser none , coco , voc , o coco_voc . |
voc |
validation_iou_threshold |
Umbral de IOU para la coincidencia de cuadros al calcular las métricas de validación. Debe ser un valor float del intervalo [0.1, 1]. |
0.5 |
img_size |
Tamaño de la imagen para entrenamiento y validación. Debe ser un entero positivo. Nota: La ejecución del entrenamiento puede llegar a CUDA OOM si el tamaño es demasiado grande. |
640 |
model_size |
Tamaño del modelo. Debe ser small , medium , large o xlarge . Nota: La ejecución del entrenamiento puede llegar a CUDA OOM si el tamaño del modelo es demasiado grande. |
medium |
multi_scale |
Habilitación de la imagen a escala múltiple variando el tamaño de la imagen en +/- 50 %. Debe ser 0 o 1. Nota: La ejecución del entrenamiento puede llegar a CUDA OOM si no hay suficiente memoria de GPU. |
0 |
box_score_thresh |
Durante la inferencia, solo se devuelven propuestas con una puntuación mayor que box_score_thresh . La puntuación es la multiplicación de la puntuación de objetividad y la probabilidad de clasificación. Debe ser un valor float en el intervalo [0, 1]. |
0,1 |
nms_iou_thresh |
Umbral de IOU usado durante la inferencia en el procesamiento posterior de la supresión no máxima. Debe ser un valor float en el intervalo [0, 1]. |
0.5 |
tile_grid_size |
Tamaño de la cuadrícula que se usará para la colocación en mosaico de cada imagen. Nota: tile_grid_size no debe ser None para habilitar la lógica de detección de objetos pequeños Tupla de dos enteros pasados como una cadena. Ejemplo: --tile_grid_size "(3, 2)" |
Sin valor predeterminado |
tile_overlap_ratio |
Proporción de superposición entre mosaicos adyacentes en cada dimensión. Debe ser float en el intervalo de [0, 1) |
0,25 |
tile_predictions_nms_thresh |
Umbral IOU que se usará para realizar NMS al combinar predicciones de mosaicos e imágenes. Se usa en la validación o inferencia. Debe ser float en el intervalo de [0, 1] |
0,25 |
En esta tabla se resumen los hiperparámetros específicos de maskrcnn_*
para la segmentación de instancias durante la inferencia.
Nombre de parámetro | Descripción | Valor predeterminado |
---|---|---|
mask_pixel_score_threshold |
Límite de puntuación para considerar un píxel parte de la máscara de un objeto. | 0.5 |
max_number_of_polygon_points |
Número máximo de pares de coordenadas (x, y) en el polígono después de la conversión a partir de una máscara. | 100 |
export_as_image |
Exportación de máscaras como imágenes. | Falso |
image_type |
Tipo de imagen que se exportará como máscara (las opciones son jpg, png, bmp). | JPG |
Hiperparámetros independientes del modelo
En la tabla siguiente se describen los hiperparámetros que son independientes del modelo.
Nombre de parámetro | Descripción | Valor predeterminado |
---|---|---|
number_of_epochs |
Número de épocas de entrenamiento. Debe ser un entero positivo. |
15 (excepto yolov5 : 30) |
training_batch_size |
Tamaño del lote de entrenamiento. Debe ser un entero positivo. |
Multiclase/multietiqueta: 78 (excepto vit-variants: vits16r224 : 128 vitb16r224 : 48 vitl16r224 : 10)Detección de objetos: 2 (excepto yolov5 : 16) Segmentación de instancias: 2 Nota: Los valores predeterminados son el tamaño de lote más grande que se puede usar en la memoria de GPU de 12 GiB. |
validation_batch_size |
Tamaño del lote de validación. Debe ser un entero positivo. |
Multiclase/multietiqueta: 78 (excepto vit-variants: vits16r224 : 128 vitb16r224 : 48 vitl16r224 : 10)Detección de objetos: 1 (excepto yolov5 : 16) Segmentación de instancias: 1 Nota: Los valores predeterminados son el tamaño de lote más grande que se puede usar en la memoria de GPU de 12 GiB. |
grad_accumulation_step |
La acumulación de gradiente implica la ejecución de un número configurado de grad_accumulation_step sin actualizar los pesos del modelo mientras se acumulan los gradientes de esos pasos y, a continuación, el uso de gradientes acumulados para calcular las actualizaciones de peso. Debe ser un entero positivo. |
1 |
early_stopping |
Habilite la lógica de detención temprana durante el entrenamiento. Debe ser 0 o 1. |
1 |
early_stopping_patience |
Número mínimo de épocas o evaluaciones de validación sin ninguna mejora de métrica principal antes de que se detenga la ejecución. Debe ser un entero positivo. |
5 |
early_stopping_delay |
Número mínimo de épocas o evaluaciones de validación que se esperarán antes de que se realice un seguimiento de la mejora de la métrica principal para la detención temprana. Debe ser un entero positivo. |
5 |
learning_rate |
Velocidad de aprendizaje inicial. Debe ser un valor float en el intervalo [0, 1]. |
Varias clases: 0,01 (excepto vit-variants: vits16r224 : 0,0125vitb16r224 : 0,0125vitl16r224 : 0,001) Varias etiquetas: 0,035 (excepto vit-variants: vits16r224 : 0,025vitb16r224 : 0,025 vitl16r224 : 0,002) Detección de objetos: 0,005 (excepto yolov5 : 0,01) Segmentación de instancias: 0,005 |
lr_scheduler |
Tipo de programador de velocidad de aprendizaje. Debe ser warmup_cosine o step . |
warmup_cosine |
step_lr_gamma |
Valor de gamma cuando el programador de velocidad de aprendizaje es step .Debe ser un valor float en el intervalo [0, 1]. |
0.5 |
step_lr_step_size |
Valor del tamaño de paso cuando el programador de velocidad de aprendizaje es step .Debe ser un entero positivo. |
5 |
warmup_cosine_lr_cycles |
Valor del ciclo de coseno cuando el programador de velocidad de aprendizaje es warmup_cosine . Debe ser un valor float en el intervalo [0, 1]. |
0.45 |
warmup_cosine_lr_warmup_epochs |
Valor de las épocas de warmup cuando el programador de velocidad de aprendizaje es warmup_cosine . Debe ser un entero positivo. |
2 |
optimizer |
Tipo de optimizador. Debe ser sgd , adam , adamw . |
sgd |
momentum |
Valor de momentum cuando el optimizador es sgd . Debe ser un valor float en el intervalo [0, 1]. |
0.9 |
weight_decay |
Valor de weight decay cuando el optimizador es sgd , adam o adamw . Debe ser un valor float en el intervalo [0, 1]. |
1e-4 |
nesterov |
Habilite nesterov cuando el optimizador sea sgd . Debe ser 0 o 1. |
1 |
beta1 |
Valor de beta1 cuando el optimizador es adam o adamw . Debe ser un valor float en el intervalo [0, 1]. |
0.9 |
beta2 |
Valor de beta2 cuando el optimizador es adam o adamw .Debe ser un valor float en el intervalo [0, 1]. |
0,999 |
amsgrad |
Habilite amsgrad cuando el optimizador sea adam o adamw .Debe ser 0 o 1. |
0 |
evaluation_frequency |
Frecuencia para evaluar el conjunto de datos de validación para obtener puntuaciones de métricas. Debe ser un entero positivo. |
1 |
checkpoint_frequency |
Frecuencia para almacenar puntos de control del modelo. Debe ser un entero positivo. |
Punto de control en época con la mejor métrica principal en la validación. |
checkpoint_run_id |
Identificador de ejecución del experimento que tiene un punto de control previamente entrenado para el entrenamiento incremental. | sin valor predeterminado |
checkpoint_dataset_id |
Identificador de FileDataset que contiene puntos de control previamente entrenados para el entrenamiento incremental. Asegúrese de pasar checkpoint_filename junto con checkpoint_dataset_id . |
sin valor predeterminado |
checkpoint_filename |
Nombre de archivo del punto de control previamente entrenado en FileDataset para el entrenamiento incremental. Asegúrese de pasar checkpoint_dataset_id junto con checkpoint_filename . |
sin valor predeterminado |
layers_to_freeze |
Número de capas que se inmovilizarán para el modelo. Por ejemplo, pasar 2 como valor para seresnext significa inmovilizar layer0 y layer1 haciendo referencia a la siguiente información de capa de modelo admitida. Debe ser un entero positivo. 'resnet': [('conv1.', 'bn1.'), 'layer1.', 'layer2.', 'layer3.', 'layer4.'], 'mobilenetv2': ['features.0.', 'features.1.', 'features.2.', 'features.3.', 'features.4.', 'features.5.', 'features.6.', 'features.7.', 'features.8.', 'features.9.', 'features.10.', 'features.11.', 'features.12.', 'features.13.', 'features.14.', 'features.15.', 'features.16.', 'features.17.', 'features.18.'], 'seresnext': ['layer0.', 'layer1.', 'layer2.', 'layer3.', 'layer4.'], 'vit': ['patch_embed', 'blocks.0.', 'blocks.1.', 'blocks.2.', 'blocks.3.', 'blocks.4.', 'blocks.5.', 'blocks.6.','blocks.7.', 'blocks.8.', 'blocks.9.', 'blocks.10.', 'blocks.11.'], 'yolov5_backbone': ['model.0.', 'model.1.', 'model.2.', 'model.3.', 'model.4.','model.5.', 'model.6.', 'model.7.', 'model.8.', 'model.9.'], 'resnet_backbone': ['backbone.body.conv1.', 'backbone.body.layer1.', 'backbone.body.layer2.','backbone.body.layer3.', 'backbone.body.layer4.'] |
sin valor predeterminado |
Hiperparámetros específicos de la clasificación de imágenes (de varias clases y de varias etiquetas)
En la tabla siguiente se resumen los hiperparámetros para las tareas de clasificación de imágenes (de varias clases y de varias etiquetas).
Nombre de parámetro | Descripción | Valor predeterminado |
---|---|---|
weighted_loss |
0 para ninguna pérdida ponderada. 1 para pérdida ponderada con sqrt. (class_weights) 2 para pérdida ponderada con class_weights. Debe ser 0, 1 o 2. |
0 |
valid_resize_size |
Notas: seresnext no toma un tamaño arbitrario. |
256 |
valid_crop_size |
Notas: seresnext no toma un tamaño arbitrario. valid_crop_size y train_crop_size . |
224 |
train_crop_size |
Notas: seresnext no toma un tamaño arbitrario. valid_crop_size y train_crop_size . |
224 |
Hiperparámetros específicos de la tarea de detección de objetos y segmentación de instancias
Los siguientes hiperparámetros son para tareas de detección de objetos y segmentación de instancias.
Advertencia
Estos parámetros no se admiten con el algoritmo yolov5
. Consulte la sección sobre hiperparámetros específicos del modelo para ver los hiperparámetros de yolov5
admitidos.
Nombre de parámetro | Descripción | Valor predeterminado |
---|---|---|
validation_metric_type |
Método de cálculo de métricas que se usará para las métricas de validación. Debe ser none , coco , voc , o coco_voc . |
voc |
validation_iou_threshold |
Umbral de IOU para la coincidencia de cuadros al calcular las métricas de validación. Debe ser un valor float del intervalo [0.1, 1]. |
0.5 |
min_size |
Tamaño mínimo de la imagen que se va a volver a escalar antes de proporcionársela a la red troncal. Debe ser un entero positivo. Nota: La ejecución del entrenamiento puede llegar a CUDA OOM si el tamaño es demasiado grande. |
600 |
max_size |
Tamaño máximo de la imagen que se va a volver a escalar antes de proporcionársela a la red troncal. Debe ser un entero positivo. Nota: La ejecución del entrenamiento puede llegar a CUDA OOM si el tamaño es demasiado grande. |
1333 |
box_score_thresh |
Durante la inferencia, solo se devuelven propuestas con una puntuación de clasificación mayor que box_score_thresh . Debe ser un valor float en el intervalo [0, 1]. |
0,3 |
nms_iou_thresh |
Umbral de IOU (intersección sobre unión) utilizado en la supresión no máxima (NMS) para el encabezado de predicción. Se usa durante la inferencia. Debe ser un valor float en el intervalo [0, 1]. |
0.5 |
box_detections_per_img |
Número máximo de detecciones por imagen, para todas las clases. Debe ser un entero positivo. |
100 |
tile_grid_size |
Tamaño de la cuadrícula que se usará para la colocación en mosaico de cada imagen. Nota: tile_grid_size no debe ser None para habilitar la lógica de detección de objetos pequeños Tupla de dos enteros pasados como una cadena. Ejemplo: --tile_grid_size "(3, 2)" |
Sin valor predeterminado |
tile_overlap_ratio |
Proporción de superposición entre mosaicos adyacentes en cada dimensión. Debe ser float en el intervalo de [0, 1) |
0,25 |
tile_predictions_nms_thresh |
Umbral IOU que se usará para realizar NMS al combinar predicciones de mosaicos e imágenes. Se usa en la validación o inferencia. Debe ser float en el intervalo de [0, 1] |
0,25 |