Hiperparámetros para tareas de Computer Vision en el aprendizaje automático automatizado
SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)
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 la arquitectura del modelo y los hiperparámetros de barrido. Estas arquitecturas 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 de la arquitectura 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 |
image_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 extra_large . 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_threshold |
Durante la inferencia, solo se devuelven propuestas con una puntuación mayor que box_score_threshold . 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_threshold |
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 Debe pasarse como cadena en formato "3x2". Ejemplo: --tile_grid_size '3x2' |
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_threshold |
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. |
gradient_accumulation_step |
La acumulación de gradiente implica la ejecución de un número configurado de gradient_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 |
learning_rate_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 |
ams_gradient |
Habilite ams_gradient 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 |
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 |
---|---|---|
model_name |
Nombre del modelo que se va a usar en la tarea de clasificación de imágenes. Debe ser uno de los siguientes: mobilenetv2 , resnet18 , resnet34 , resnet50 , resnet101 , resnet152 , resnest50 , resnest101 , seresnext , vits16r224 , vitb16r224 , vitl16r224 . |
seresnext |
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 |
validation_resize_size |
- Tamaño de imagen al que se va a cambiar el tamaño antes de recortar para el conjunto de datos de validación. - Debe ser un entero positivo. Notas: - seresnext no toma un tamaño arbitrario. - La ejecución del entrenamiento puede llegar a CUDA OOM si el tamaño es demasiado grande. |
256 |
validation_crop_size |
- Tamaño de recorte de imagen que se introduce en la red neuronal para el conjunto de datos de validación. - Debe ser un entero positivo. Notas: - seresnext no toma un tamaño arbitrario. - Las ViT-variants deben tener el mismo validation_crop_size y training_crop_size . - La ejecución del entrenamiento puede llegar a CUDA OOM si el tamaño es demasiado grande. |
224 |
training_crop_size |
- Tamaño de recorte de imagen que se introduce en la red neuronal para el conjunto de datos de entrenamiento. - Debe ser un entero positivo. Notas: - seresnext no toma un tamaño arbitrario. - Las ViT-variants deben tener el mismo validation_crop_size y training_crop_size . - La ejecución del entrenamiento puede llegar a CUDA OOM si el tamaño es demasiado grande. |
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 la arquitectura 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 |
---|---|---|
model_name |
Nombre del modelo que se va a usar en la tarea de clasificación de imágenes. - Para la tarea de detección de objetos, debe ser uno de los siguientes: yolov5 , fasterrcnn_resnet18_fpn , fasterrcnn_resnet34_fpn , fasterrcnn_resnet50_fpn , fasterrcnn_resnet101_fpn , fasterrcnn_resnet152_fpn , retinanet_resnet50_fpn . - Para la tarea de segmentación de instancias, debe ser uno de los siguientes: maskrcnn_resnet18_fpn , maskrcnn_resnet34_fpn , maskrcnn_resnet50_fpn , maskrcnn_resnet101_fpn , maskrcnn_resnet152_fpn . |
- Para la tarea de detección de objetos: fasterrcnn_resnet50_fpn . - Para la tarea de segmentación de instancias: maskrcnn_resnet50_fpn . |
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_threshold |
Durante la inferencia, solo se devuelven propuestas con una puntuación de clasificación mayor que box_score_threshold . Debe ser un valor float en el intervalo [0, 1]. |
0,3 |
nms_iou_threshold |
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_image |
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. - tile_grid_size no debe ser None para habilitar la lógica de detección de objetos pequeños.- tile_grid_size no se admite para las tareas de segmentación de instancias.Debe pasarse como cadena en formato "3x2". Ejemplo: --tile_grid_size '3x2' |
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_threshold |
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 |