Hiperparâmetros para tarefas de pesquisa visual computacional no ML automatizado
APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)
Saiba quais hiperparâmetros estão disponíveis especificamente para as tarefas de pesquisa visual computacional nos experimentos do ML automatizado.
Com suporte a tarefas visuais computacionais, você pode controlar a arquitetura de modelo e os hiperparâmetros de varredura. Essas arquiteturas de modelo e hiperparâmetros são transmitidos como o espaço de parâmetro para a varredura. Embora muitos hiperparâmetros expostos sejam independentes do modelo, há instâncias em que os hiperparâmetros são específicos do modelo ou da tarefa.
Hiperparâmetros específicos do modelo
Esta tabela resume os hiperparâmetros específicos para a arquitetura yolov5
.
Nome do parâmetro | Descrição | Padrão |
---|---|---|
validation_metric_type |
Método de computação de métrica a ser usado em métricas de validação. Precisa ser none , coco , voc ou coco_voc . |
voc |
validation_iou_threshold |
Limite de IOU para correspondência de caixa ao computar métricas de validação. Deve ser um float no intervalo [0.1, 1]. |
0,5 |
image_size |
Tamanho da imagem para treinamento e validação. Deve ser um número inteiro positivo. Observação: a execução de treinamento poderá entrar em CUDA OOM se o tamanho for muito grande. |
640 |
model_size |
Tamanho do modelo. Precisa ser small , medium , large ou extra_large . Observação: a execução de treinamento poderá entrar em CUDA OOM se o tamanho do modelo for muito grande. |
medium |
multi_scale |
Habilitar imagem em várias escalas variando o tamanho da imagem por +/-50% Precisa ser 0 ou 1. Observação: a execução de treinamento poderá entrar em CUDA OOM se não houver memória GPU suficiente. |
0 |
box_score_threshold |
Durante a inferência, retornar apenas propostas com uma pontuação maior que box_score_threshold . A pontuação é a multiplicação da pontuação de objeções e da probabilidade de classificação. Precisa ser um float no intervalo [0, 1]. |
0,1 |
nms_iou_threshold |
Limite de IOU usado durante a inferência no pós-processamento de supressão não máxima. Precisa ser um float no intervalo [0, 1]. |
0,5 |
tile_grid_size |
O tamanho da grade a ser usado para a divisão em blocos de cada imagem. Observação: tile_grid_size precisa não ser None para habilitar a lógica de detecção de objeto pequeno Deve ser passado como uma cadeia de caracteres no formato '3x2'. Exemplo: --tile_grid_size '3x2' |
Sem padrão |
tile_overlap_ratio |
Taxa de sobreposição entre blocos adjacentes em cada dimensão. Precisa ser um float no intervalo [0, 1) |
0,25 |
tile_predictions_nms_threshold |
O limite de IOU a ser usado para executar NMS durante a mescla de previsões de blocos e imagens. Usado em validação/inferência. Precisa ser um float no intervalo [0, 1] |
0,25 |
Esta tabela resume os hiperparâmetros específicos de maskrcnn_*
para a segmentação da instância durante a inferência.
Nome do parâmetro | Descrição | Padrão |
---|---|---|
mask_pixel_score_threshold |
Corte de pontuação para considerar um pixel como parte da máscara de um objeto. | 0.5 |
max_number_of_polygon_points |
Número máximo de pares de coordenadas (x, y) no polígono após a conversão de uma máscara. | 100 |
export_as_image |
Exportação de máscaras como imagens. | Falso |
image_type |
Tipo de imagem para exportação da máscara como (as opções são JPG, PNG e BMP). | JPG |
Hiperparâmetros que independem do modelo
A tabela a seguir descreve os hiperparâmetros que independem do modelo.
Nome do parâmetro | Descrição | Padrão |
---|---|---|
number_of_epochs |
Número de épocas de treinamento. Deve ser um número inteiro positivo. |
15 (exceto yolov5 : 30) |
training_batch_size |
Tamanho do lote de treinamento. Deve ser um número inteiro positivo. |
Várias classes/vários rótulos: 78 (exceto vit-variants: vits16r224 : 128 vitb16r224 : 48 vitl16r224 :10)Detecção de objetos: 2 (exceto yolov5 : 16) Segmentação de instâncias: 2 Observação: os padrões são o maior tamanho de lote que possa ser usado na memória de GPU de 12 GiB. |
validation_batch_size |
Tamanho do lote de validação. Deve ser um número inteiro positivo. |
Várias classes/vários rótulos: 78 (exceto vit-variants: vits16r224 : 128 vitb16r224 : 48 vitl16r224 :10)Detecção de objetos: 1 (exceto yolov5 : 16) Segmentação de instâncias: 1 Observação: os padrões são o maior tamanho de lote que possa ser usado na memória de GPU de 12 GiB. |
gradient_accumulation_step |
A acumulação de gradiente significa executar um número configurado de gradient_accumulation_step sem atualizar os pesos do modelo ao acumular os gradientes dessas etapas e, em seguida, usar os gradientes acumulados para calcular as atualizações de peso. Deve ser um número inteiro positivo. |
1 |
early_stopping |
Habilitar a lógica de parada antecipada durante o treinamento. Precisa ser 0 ou 1. |
1 |
early_stopping_patience |
Número mínimo de épocas ou avaliações de validação sem nenhuma melhoria de métrica primária antes que a execução seja interrompida. Deve ser um número inteiro positivo. |
5 |
early_stopping_delay |
Número mínimo de épocas ou avaliações de validação a aguardar antes que o aprimoramento da métrica primária seja rastreado para parada antecipada. Deve ser um número inteiro positivo. |
5 |
learning_rate |
Taxa de aprendizagem inicial. Precisa ser um float no intervalo [0, 1]. |
Várias classes: 0,01 (exceto vit-variants: vits16r224 : 0,0125vitb16r224 : 0,0125vitl16r224 : 0,001) Vários rótulos: 0,035 (exceto vit-variants: vits16r224 : 0,025vitb16r224 : 0,025 vitl16r224 : 0,002) Detecção de objetos: 0,005 (exceto yolov5 : 0.01) Segmentação de instância: 0,005 |
learning_rate_scheduler |
Tipo de agendador de taxa de aprendizagem. Deve ser warmup_cosine ou step . |
warmup_cosine |
step_lr_gamma |
Valor de gama quando o agendador de taxa de aprendizagem é step .Precisa ser um float no intervalo [0, 1]. |
0,5 |
step_lr_step_size |
Valor do tamanho da etapa quando o agendador de taxa de aprendizagem é step .Deve ser um número inteiro positivo. |
5 |
warmup_cosine_lr_cycles |
Valor do ciclo cosseno quando o agendador de taxa de aprendizagem é warmup_cosine . Precisa ser um float no intervalo [0, 1]. |
0,45 |
warmup_cosine_lr_warmup_epochs |
Valor de épocas de aquecimento quando o agendador de taxa de aprendizagem é warmup_cosine . Deve ser um número inteiro positivo. |
2 |
optimizer |
Tipo de otimizador. Precisa ser sgd , adam ou adamw . |
sgd |
momentum |
Valor de momentum quando o otimizador é sgd . Precisa ser um float no intervalo [0, 1]. |
0,9 |
weight_decay |
Valor de decaimento de peso quando o otimizador é sgd adam ou adamw . Precisa ser um float no intervalo [0, 1]. |
1e-4 |
nesterov |
Habilitar nesterov quando o otimizador é sgd . Precisa ser 0 ou 1. |
1 |
beta1 |
Valor de beta1 quando o otimizador é adam ou adamw . Precisa ser um float no intervalo [0, 1]. |
0,9 |
beta2 |
Valor de beta2 quando o otimizador é adam ou adamw .Precisa ser um float no intervalo [0, 1]. |
0,999 |
ams_gradient |
Habilitar ams_gradient quando o otimizador é adam ou adamw .Precisa ser 0 ou 1. |
0 |
evaluation_frequency |
Frequência para avaliar o conjunto de dados de validação a fim de obter pontuações de métrica. Deve ser um número inteiro positivo. |
1 |
checkpoint_frequency |
Frequência para armazenar pontos de verificação do modelo. Deve ser um número inteiro positivo. |
Ponto de verificação na época com a melhor métrica primária na validação. |
checkpoint_run_id |
A ID de execução do experimento que tem um ponto de verificação pré-treinado para treinamento incremental. | sem padrão |
layers_to_freeze |
Quantas camadas devem ser congeladas para seu modelo. Por exemplo, a transmissão de 2 como valor para seresnext significa congelar layer0 e layer1 em relação às informações de camada de modelo com suporte abaixo. Deve ser um número inteiro 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.'] |
sem padrão |
Hiperparâmetros específicos de classificação de imagem (multiclasse e multirrótulos)
A tabela a seguir resume os hiperparâmetros para tarefas de classificação de imagem (várias classes e vários rótulos).
Nome do parâmetro | Descrição | Padrão |
---|---|---|
model_name |
Nome do modelo a ser usado para a tarefa de classificação de imagem em questão. Deve ser um destes: mobilenetv2 , resnet18 , resnet34 , resnet50 , resnet101 , resnet152 , resnest50 , resnest101 , seresnext , vits16r224 , vitb16r224 , vitl16r224 . |
seresnext |
weighted_loss |
– 0 para sem perda ponderada. - 1 para perda ponderada com sqrt. (class_weights) – 2 para perda ponderada com class_weights. – Deve ser 0, 1 ou 2. |
0 |
validation_resize_size |
– Tamanho da imagem a redimensionar antes do corte para um conjunto de dados de validação. – Deve ser um número inteiro positivo. Anotações: - seresnext não assume um tamanho arbitrário. – A execução de treinamento poderá entrar em CUDA OOM se o tamanho for muito grande. |
256 |
validation_crop_size |
– Tamanho de corte da imagem que serve de entrada para sua rede neural para o conjunto de dados de validação. – Deve ser um número inteiro positivo. Anotações: - seresnext não assume um tamanho arbitrário. - As ViT-variants devem ter os mesmos validation_crop_size e training_crop_size . – A execução de treinamento poderá entrar em CUDA OOM se o tamanho for muito grande. |
224 |
training_crop_size |
– Tamanho de corte da imagem que serve de entrada para sua rede neural para o conjunto de dados de treinamento. – Deve ser um número inteiro positivo. Anotações: - seresnext não assume um tamanho arbitrário. - As ViT-variants devem ter os mesmos validation_crop_size e training_crop_size . – A execução de treinamento poderá entrar em CUDA OOM se o tamanho for muito grande. |
224 |
Hiperparâmetros específicos da tarefa de detecção de objetos e segmentação de instâncias
Os hiperparâmetros a seguir servem para tarefas de segmentação de instância e detecção de objetos.
Aviso
Não há suporte a esses parâmetros com a arquitetura yolov5
. Consulte a seção hiperparâmetros específicos do modelo para obter osyolov5
hiperparâmetros com suporte.
Nome do parâmetro | Descrição | Padrão |
---|---|---|
model_name |
Nome do modelo a ser usado para a tarefa de classificação de imagem em questão. – Para a tarefa de detecção de objetos, deve ser uma destas: yolov5 , fasterrcnn_resnet18_fpn , fasterrcnn_resnet34_fpn , fasterrcnn_resnet50_fpn , fasterrcnn_resnet101_fpn , fasterrcnn_resnet152_fpn , retinanet_resnet50_fpn . – Para a tarefa de segmentação de instância, deve ser uma destas maskrcnn_resnet18_fpn , maskrcnn_resnet34_fpn , maskrcnn_resnet50_fpn , maskrcnn_resnet101_fpn , maskrcnn_resnet152_fpn |
– Para a tarefa de detecção de objeto, fasterrcnn_resnet50_fpn – Para a tarefa de segmentação de instâncias, maskrcnn_resnet50_fpn |
validation_metric_type |
Método de computação de métrica a ser usado em métricas de validação. Precisa ser none , coco , voc ou coco_voc . |
voc |
validation_iou_threshold |
Limite de IOU para correspondência de caixa ao computar métricas de validação. Deve ser um float no intervalo [0.1, 1]. |
0,5 |
min_size |
Tamanho mínimo da imagem a ser redimensionada antes de alimentar o backbone. Deve ser um número inteiro positivo. Observação: a execução de treinamento poderá entrar em CUDA OOM se o tamanho for muito grande. |
600 |
max_size |
Tamanho máximo da imagem a ser redimensionada antes de alimentar o backbone. Deve ser um número inteiro positivo. Observação: a execução de treinamento poderá entrar em CUDA OOM se o tamanho for muito grande. |
1333 |
box_score_threshold |
Durante a inferência, só retornar propostas com uma pontuação de classificação maior que box_score_threshold . Precisa ser um float no intervalo [0, 1]. |
0.3 |
nms_iou_threshold |
Limite de IOU (interseção sobre união) usado em NMS (supressão não máxima) para o cabeçalho de previsão. Usado durante a inferência. Precisa ser um float no intervalo [0, 1]. |
0,5 |
box_detections_per_image |
Número máximo de detecções por imagem, para todas as classes. Deve ser um número inteiro positivo. |
100 |
tile_grid_size |
O tamanho da grade a ser usado para a divisão em blocos de cada imagem. - tile_grid_size não deve ser None para habilitar a lógica de detecção de objetos pequenos.- tile_grid_size não tem suporte para tarefas de segmentação de instância.Deve ser passado como uma cadeia de caracteres no formato '3x2'. Exemplo: --tile_grid_size '3x2' |
Sem padrão |
tile_overlap_ratio |
Taxa de sobreposição entre blocos adjacentes em cada dimensão. Precisa ser um float no intervalo [0, 1) |
0,25 |
tile_predictions_nms_threshold |
O limite de IOU a ser usado para executar NMS durante a mescla de previsões de blocos e imagens. Usado em validação/inferência. Precisa ser um float no intervalo [0, 1] |
0,25 |