Hiperparâmetros para tarefas de visão computacional em aprendizado de máquina automatizado
APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Saiba quais hiperparâmetros estão disponíveis especificamente para tarefas de visão computacional em experimentos automatizados de ML.
Com suporte para tarefas de visão computacional, você pode controlar a arquitetura do modelo e varrer hiperparâmetros. Essas arquiteturas de modelo e hiperparâmetros são passados como o espaço de parâmetro para a varredura. Embora muitos dos hiperparâmetros expostos sejam agnósticos ao 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 da yolov5
arquitetura.
Nome do parâmetro | Description | Predefinido |
---|---|---|
validation_metric_type |
Método de cálculo métrico a utilizar para métricas de validação. Deve ser none , coco , voc , ou coco_voc . |
voc |
validation_iou_threshold |
Limite de IOU para correspondência de caixa ao calcular métricas de validação. Deve ser um flutuador na faixa [0,1, 1]. |
0.5 |
image_size |
Tamanho da imagem para trem e validação. Deve ser um número inteiro positivo. Nota: a corrida de treinamento pode entrar no CUDA OOM se o tamanho for muito grande. |
640 |
model_size |
Tamanho do modelo. Deve ser small , medium , large , ou extra_large . Nota: a corrida de treinamento pode entrar no CUDA OOM se o tamanho do modelo for muito grande. |
medium |
multi_scale |
Habilite a imagem em várias escalas variando o tamanho da imagem em +/- 50% Deve ser 0 ou 1. Nota: a execução de treinamento pode entrar no CUDA OOM se não houver memória GPU suficiente. |
0 |
box_score_threshold |
Durante a inferência, apenas retornam propostas com pontuação maior que box_score_threshold . A pontuação é a multiplicação da pontuação de objetividade e probabilidade de classificação. Deve ser um flutuador na faixa [0, 1]. |
0.1 |
nms_iou_threshold |
Limiar de UIF usado durante a inferência em pós-processamento de supressão não máxima. Deve ser um flutuador na faixa [0, 1]. |
0.5 |
tile_grid_size |
O tamanho da grade a ser usado para colocar lado a lado cada imagem. Nota: tile_grid_size não deve ser Nenhum para habilitar a lógica de deteção de objetos pequenos Deve ser passado como uma string no formato '3x2'. Exemplo: --tile_grid_size '3x2' |
Sem padrão |
tile_overlap_ratio |
Razão de sobreposição entre blocos adjacentes em cada dimensão. Deve ser flutuante na faixa de [0, 1) |
0.25 |
tile_predictions_nms_threshold |
O limite de UO a ser usado para executar o NMS ao mesclar previsões de blocos e imagem. Utilizado na validação/inferência. Deve ser flutuante na faixa de [0, 1] |
0.25 |
Esta tabela resume os hiperparâmetros específicos para, por exemplo, a segmentação durante a maskrcnn_*
inferência.
Nome do parâmetro | Description | Predefinido |
---|---|---|
mask_pixel_score_threshold |
Ponto de 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 |
Exporte máscaras como imagens. | False |
image_type |
Tipo de imagem para exportar máscara como (as opções são jpg, png, bmp). | JPG |
Modelo de hiperparâmetros agnósticos
A tabela a seguir descreve os hiperparâmetros que são agnósticos ao modelo.
Nome do parâmetro | Description | Predefinido |
---|---|---|
number_of_epochs |
Número de épocas de formação. 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. |
Multiclasse/multi-rótulo: 78 (exceto variantes vit: vits16r224 : 128 vitb16r224 : 48 vitl16r224 :10)Deteção de objetos: 2 (exceto yolov5 : 16) Segmentação de instâncias: 2 Nota: Os padrões são o maior tamanho de lote que pode ser usado em memória GPU de 12 GiB. |
validation_batch_size |
Tamanho do lote de validação. Deve ser um número inteiro positivo. |
Multiclasse/multi-rótulo: 78 (exceto variantes vit: vits16r224 : 128 vitb16r224 : 48 vitl16r224 :10)Deteção de objetos: 1 (exceto yolov5 : 16) Segmentação de instâncias: 1 Nota: Os padrões são o maior tamanho de lote que pode ser usado em memória GPU de 12 GiB. |
gradient_accumulation_step |
Acumulação de gradiente significa executar um número configurado de sem atualizar os pesos do modelo enquanto acumula os gradientes dessas etapas e, em seguida, usar os gradientes acumulados para calcular as atualizações de gradient_accumulation_step peso. Deve ser um número inteiro positivo. |
1 |
early_stopping |
Habilite a lógica de parada precoce durante o treinamento. Deve ser 0 ou 1. |
1 |
early_stopping_patience |
Número mínimo de épocas ou avaliações de validação com Nenhuma melhoria na 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 a melhoria da métrica primária seja rastreada para interrupção antecipada. Deve ser um número inteiro positivo. |
5 |
learning_rate |
Taxa de aprendizagem inicial. Deve ser um flutuador na faixa [0, 1]. |
Multiclasse: 0,01 (exceto variantes vit: vits16r224 : 0.0125vitb16r224 : 0.0125vitl16r224 : 0.001) Multi-rótulo: 0.035 (exceto variantes vit: vits16r224 : 0.025vitb16r224 : 0.025 vitl16r224 : 0.002) Deteçã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 .Deve ser um flutuador na faixa [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 . Deve ser um flutuador na faixa [0, 1]. |
0,45 |
warmup_cosine_lr_warmup_epochs |
Valor das épocas de aquecimento quando o agendador de taxa de aprendizagem é warmup_cosine . Deve ser um número inteiro positivo. |
2 |
optimizer |
Tipo de otimizador. Deve ser ou sgd , adam , adamw . |
sgd |
momentum |
Valor do momento quando o otimizador é sgd . Deve ser um flutuador na faixa [0, 1]. |
0,9 |
weight_decay |
Valor de decaimento de peso quando o otimizador é sgd , adam ou adamw . Deve ser um flutuador na faixa [0, 1]. |
1E-4 |
nesterov |
Habilite nesterov quando o otimizador for sgd . Deve ser 0 ou 1. |
1 |
beta1 |
Valor de beta1 quando o otimizador é adam ou adamw . Deve ser um flutuador na faixa [0, 1]. |
0,9 |
beta2 |
Valor de beta2 quando o otimizador é adam ou adamw .Deve ser um flutuador na faixa [0, 1]. |
0.999 |
ams_gradient |
Habilite ams_gradient quando o otimizador for adam ou adamw .Deve ser 0 ou 1. |
0 |
evaluation_frequency |
Frequência para avaliar o conjunto de dados de validação para obter pontuações métricas. 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 congelar para o seu modelo. Por exemplo, passar 2 como valor para seresnext significa congelar layer0 e layer1 referindo-se às informações da camada de modelo suportada 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 |
Classificação de imagem (multiclasse e multi-label) hiperparâmetros específicos
A tabela a seguir resume os hiperparímetros para tarefas de classificação de imagem (multiclasse e multirótulo).
Nome do parâmetro | Description | Predefinido |
---|---|---|
model_name |
Nome do modelo a ser usado para a tarefa de classificação de imagem em mãos. Deve ser um dos mobilenetv2 , , , resnet34 , resnet50 , resnet101 resnet152 , seresnext resnest50 resnest101 , . vits16r224 vitb16r224 vitl16r224 resnet18 |
seresnext |
weighted_loss |
- 0 para nenhuma perda de peso. - 1 para perda de peso com sqrt. (class_weights) - 2 para perda de peso com class_weights. - Deve ser 0 ou 1 ou 2. |
0 |
validation_resize_size |
- Tamanho da imagem para o qual redimensionar antes de cortar para o conjunto de dados de validação. - Deve ser um número inteiro positivo. Observações: - seresnext não tem um tamanho arbitrário. - A corrida de treinamento pode entrar no CUDA OOM se o tamanho for muito grande. |
256 |
validation_crop_size |
- Tamanho de corte de imagem que é inserido em sua rede neural para conjunto de dados de validação. - Deve ser um número inteiro positivo. Observações: - seresnext não tem um tamanho arbitrário. - As variantes ViT devem ter o mesmo validation_crop_size e training_crop_size . - A corrida de treinamento pode entrar no CUDA OOM se o tamanho for muito grande. |
224 |
training_crop_size |
- Tamanho de corte de imagem que é inserido em sua rede neural para o conjunto de dados de trem. - Deve ser um número inteiro positivo. Observações: - seresnext não tem um tamanho arbitrário. - As variantes ViT devem ter o mesmo validation_crop_size e training_crop_size . - A corrida de treinamento pode entrar no CUDA OOM se o tamanho for muito grande. |
224 |
Deteção de objetos e segmentação de instância Tarefa de segmentação de hiperparâmetros específicos
Os hiperparâmetros a seguir são para deteção de objetos e tarefas de segmentação de instância.
Aviso
Esses parâmetros não são suportados com a yolov5
arquitetura. Consulte a seção de hiperparâmetros específicos do modelo para hiperparímetros yolov5
suportados.
Nome do parâmetro | Description | Predefinido |
---|---|---|
model_name |
Nome do modelo a ser usado para a tarefa de classificação de imagem em mãos. - Para a tarefa de deteção de objetos, deve ser um dos yolov5 , fasterrcnn_resnet18_fpn , fasterrcnn_resnet34_fpn , fasterrcnn_resnet50_fpn , fasterrcnn_resnet101_fpn , fasterrcnn_resnet152_fpn , retinanet_resnet50_fpn . - Por exemplo, a tarefa de segmentação, deve ser uma das maskrcnn_resnet18_fpn , maskrcnn_resnet34_fpn , maskrcnn_resnet50_fpn , maskrcnn_resnet101_fpn , maskrcnn_resnet152_fpn |
- Para a tarefa de deteção de objetos, fasterrcnn_resnet50_fpn - Por exemplo, tarefa de segmentação, maskrcnn_resnet50_fpn |
validation_metric_type |
Método de cálculo métrico a utilizar para métricas de validação. Deve ser none , coco , voc , ou coco_voc . |
voc |
validation_iou_threshold |
Limite de IOU para correspondência de caixa ao calcular métricas de validação. Deve ser um flutuador na faixa [0,1, 1]. |
0.5 |
min_size |
Tamanho mínimo da imagem a ser redimensionada antes de alimentá-la para o backbone. Deve ser um número inteiro positivo. Nota: a corrida de treinamento pode entrar no CUDA OOM se o tamanho for muito grande. |
600 |
max_size |
Tamanho máximo da imagem a ser redimensionada antes de alimentá-la para o backbone. Deve ser um número inteiro positivo. Nota: a corrida de treinamento pode entrar no CUDA OOM se o tamanho for muito grande. |
1333 |
box_score_threshold |
Durante a inferência, apenas retornam propostas com uma pontuação de classificação maior que box_score_threshold . Deve ser um flutuador na faixa [0, 1]. |
0.3 |
nms_iou_threshold |
Limiar de IOU (intersecção sobre união) usado na supressão não máxima (NMS) para a cabeça de previsão. Usado durante a inferência. Deve ser um flutuador na faixa [0, 1]. |
0.5 |
box_detections_per_image |
Número máximo de deteçõ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 colocar lado a lado cada imagem. - tile_grid_size não deve ser Nenhum para habilitar a lógica de deteção de objetos pequenos.- tile_grid_size não é suportado para tarefas de segmentação por exemplo.Deve ser passado como uma string no formato '3x2'. Exemplo: --tile_grid_size '3x2' |
Sem padrão |
tile_overlap_ratio |
Razão de sobreposição entre blocos adjacentes em cada dimensão. Deve ser flutuante na faixa de [0, 1) |
0.25 |
tile_predictions_nms_threshold |
O limite de UO a ser usado para executar o NMS ao mesclar previsões de blocos e imagem. Utilizado na validação/inferência. Deve ser flutuante na faixa de [0, 1] |
0.25 |