Hiperparâmetros para tarefas de pesquisa visual computacional no machine learning automatizado (v1)

APLICA-SE A: SDK do Python azureml v1

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 de pesquisa visual computacional, você pode controlar o algoritmo de modelo e os hiperparâmetros de varredura. Esses algoritmos 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 do algoritmo 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
img_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 xlarge.

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_thresh Durante a inferência, retornar apenas propostas com uma pontuação maior que box_score_thresh. 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_thresh 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
Tupla de dois inteiros transmitida como uma cadeia de caracteres. Exemplo:--tile_grid_size "(3, 2)"
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_thresh 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.
grad_accumulation_step A acumulação de gradiente significa executar um número configurado de grad_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,0125
vitb16r224: 0,0125
vitl16r224: 0,001)

Vários rótulos: 0,035
(exceto vit-variants:
vits16r224: 0,025
vitb16r224: 0,025
vitl16r224: 0,002)

Detecçã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.
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 é sgdadam 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
amsgrad Habilitar amsgrad 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
checkpoint_dataset_id ID do FileDataset contendo pontos de verificação pré-treinados para treinamento incremental. Certifique-se de passar checkpoint_filename 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 com checkpoint_filename. 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
weighted_loss 0 sem perda ponderada.
1 para perda ponderada com sqrt. (class_weights)
2 para perda ponderada com class_weights.
Precisa ser 0, 1 ou 2.
0
valid_resize_size
  • Tamanho da imagem a redimensionar antes do corte para um conjunto 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
    valid_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 o mesmo valid_crop_size e train_crop_size.
  • A execução de treinamento poderá entrar em CUDA OOM se o tamanho for muito grande.
  • 224
    train_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 o mesmo valid_crop_size e train_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 o algoritmo 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
    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_thresh Durante a inferência, só retornar propostas com uma pontuação de classificação maior que box_score_thresh.
    Precisa ser um float no intervalo [0, 1].
    0.3
    nms_iou_thresh 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_img 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.
    Observação: tile_grid_size precisa não ser None para habilitar a lógica de detecção de objeto pequeno
    Tupla de dois inteiros transmitida como uma cadeia de caracteres. Exemplo:--tile_grid_size "(3, 2)"
    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_thresh 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

    Próximas etapas