Partilhar via


Hiperparâmetros para tarefas de visão computacional em aprendizado de máquina automatizado (v1)

APLICA-SE A: Python SDK azureml v1

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 o algoritmo do modelo e varrer hiperparâmetros. Esses algoritmos 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 do yolov5 algoritmo.

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
img_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 xlarge.

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_thresh Durante a inferência, apenas retornam propostas com pontuação maior que box_score_thresh. 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_thresh 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
Uma tupla de dois inteiros passou como uma cadeia de caracteres. Exemplo: --tile_grid_size "(3, 2)"
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_thresh 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.
grad_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 grad_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.0125
vitb16r224: 0.0125
vitl16r224: 0.001)

Multi-rótulo: 0.035
(exceto variantes vit:
vits16r224: 0.025
vitb16r224: 0.025
vitl16r224: 0.002)

Deteção de objetos: 0.005
(exceto yolov5: 0,01)

Segmentação de instância: 0,005
lr_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, adamou 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
amsgrad Habilite amsgrad 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
checkpoint_dataset_id FileDataset ID contendo pontos de verificação pré-treinados para treinamento incremental. Certifique-se de passar checkpoint_filename junto com checkpoint_dataset_id. sem padrão
checkpoint_filename O nome do arquivo de ponto de verificação pré-treinado em FileDataset para treinamento incremental. Certifique-se de passar checkpoint_dataset_id junto com checkpoint_filename. 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
weighted_loss 0 para nenhuma perda ponderada.
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
valid_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
    valid_crop_size
  • Tamanho de corte de imagem que é inserido em sua rede neural 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.
  • As variantes ViT devem ter o mesmo valid_crop_size e train_crop_size.
  • A corrida de treinamento pode entrar no CUDA OOM se o tamanho for muito grande.
  • 224
    train_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 valid_crop_size e train_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 o yolov5 algoritmo. Consulte a seção de hiperparâmetros específicos do modelo para hiperparímetros yolov5 suportados.

    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
    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_thresh Durante a inferência, apenas retornam propostas com uma pontuação de classificação maior que box_score_thresh.
    Deve ser um flutuador na faixa [0, 1].
    0.3
    nms_iou_thresh 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_img 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.
    Nota: tile_grid_size não deve ser Nenhum para habilitar a lógica de deteção de objetos pequenos
    Uma tupla de dois inteiros passou como uma cadeia de caracteres. Exemplo: --tile_grid_size "(3, 2)"
    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_thresh 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

    Próximos passos