Hiperparmetros para tarefas de visão computacional na aprendizagem automática de máquinas

APLICA-SE A:Extensão Azure CLI ml v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

Saiba quais hiperparmetros estão disponíveis especificamente para tarefas de visão computacional em experiências automatizadas de ML.

Com suporte para tarefas de visão computacional, pode controlar o algoritmo do modelo e varrer hiperparímetros. Estes algoritmos de modelo e hiperparímetros são passados como o espaço dos parâmetros para a varredura. Embora muitos dos hiperparímetros expostos sejam modelo-agnósticos, existem casos em que os hiperparímetros são específicos do modelo ou específicos de tarefas.

Hiperparímetros específicos do modelo

Esta tabela resume hiperparímetros específicos do yolov5 algoritmo.

Nome do parâmetro Descrição Predefinição
validation_metric_type Método de computação métrica para usar para métricas de validação.
Deve ser none, coco, vocou coco_voc.
voc
validation_iou_threshold Limiar IOU para correspondência de caixa ao calcular métricas de validação.
Deve ser um flutuador no intervalo [0.1, 1].
0,5
image_size Tamanho da imagem para comboio e validação.
Deve ser um inteiro positivo.

Nota: o treino pode entrar na CUDA OOM se o tamanho for demasiado grande.
640
model_size Tamanho do modelo.
Deve ser small, medium, largeou extra_large.

Nota: o treino pode entrar na CUDA OOM se o tamanho do modelo for demasiado grande.
medium
multi_scale Ativar a imagem em várias escalas variando o tamanho da imagem em +/- 50%
Deve ser 0 ou 1.

Nota: o treino pode entrar na CUDA OOM se não houver memória GPU suficiente.
0
box_score_threshold Durante a inferência, apenas devolvam propostas com uma pontuação superior box_score_thresholda . A pontuação é a multiplicação da pontuação de objetividade e probabilidade de classificação.
Deve ser um flutuador no alcance [0, 1].
0.1
nms_iou_threshold Limiar IOU utilizado durante a inferência no pós-processamento de supressão não máximo.
Deve ser um flutuador no alcance [0, 1].
0,5
tile_grid_size O tamanho da grelha a utilizar para a inclinação de cada imagem.
Nota: tile_grid_size não deve ser Nenhum para permitir a lógica de deteção de pequenos objetos
Deve ser passado como uma corda em formato '3x2'. Exemplo: -tile_grid_size '3x2'
Sem Predefinição
tile_overlap_ratio Relação de sobreposição entre azulejos adjacentes em cada dimensão.
Deve ser flutuado na gama de [0, 1)
0,25
tile_predictions_nms_threshold O limiar IOU para utilizar para executar NMS enquanto funde previsões de azulejos e imagem. Usado em validação/inferência.
Deve ser flutuador no intervalo de [0, 1]
0,25

Esta tabela resume hiperparmetros específicos da segmentação, por exemplo, durante a maskrcnn_* inferência.

Nome do parâmetro Descrição Predefinição
mask_pixel_score_threshold Corte de pontuação por 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 Máscaras de exportação como imagens. Falso
image_type Tipo de imagem para exportar máscara como (opções são jpg, png, bmp). JPG

Hiperparametros agnósticos modelo

A tabela seguinte descreve os hiperparmetros que são agnósticos modelo.

Nome do parâmetro Descrição Predefinição
number_of_epochs Número de épocas de treino.
Deve ser um inteiro positivo.
15
(exceto yolov5: 30)
training_batch_size Tamanho do lote de treino.
Deve ser um inteiro positivo.
Multi-class/multi-rótulo: 78
(exceto as variantes vit:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

Deteção de objetos: 2
(exceto yolov5: 16)

Segmentação de exemplo: 2

Nota: As predefinições são o maior tamanho do lote que pode ser usado na memória GPU de 12 GiB.
validation_batch_size Tamanho do lote de validação.
Deve ser um inteiro positivo.
Multi-class/multi-rótulo: 78
(exceto as variantes vit:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

Deteção de objetos: 1
(exceto yolov5: 16)

Segmentação de exemplos: 1

Nota: As predefinições são o maior tamanho do lote que pode ser usado na memória GPU de 12 GiB.
gradient_accumulation_step A acumulação de gradientes significa executar um número configurado de sem atualizar os pesos do gradient_accumulation_step modelo enquanto acumula os gradientes dessas etapas e, em seguida, usar os gradientes acumulados para calcular as atualizações de peso.
Deve ser um inteiro positivo.
1
early_stopping Ativar a lógica de paragem precoce durante o treino.
Deve ser 0 ou 1.
1
early_stopping_patience Número mínimo de épocas ou avaliações de validação com
nenhuma melhoria métrica primária antes da execução ser interrompida.
Deve ser um 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 paragem precoce.
Deve ser um inteiro positivo.
5
learning_rate Taxa de aprendizagem inicial.
Deve ser um flutuador no alcance [0, 1].
Multi-classe: 0.01
(exceto as variantes vit:
vits16r224: 0.0125
vitb16r224: 0.0125
vitl16r224: 0.001)

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

Deteção de objetos: 0.005
(exceto yolov5: 0.01)

Segmentação de exemplo: 0.005
learning_rate_scheduler Tipo de programador de taxa de aprendizagem.
Deve ser warmup_cosine ou step.
warmup_cosine
step_lr_gamma Valor da gama quando o programador de taxa de aprendizagem é step.
Deve ser um flutuador no alcance [0, 1].
0,5
step_lr_step_size Valor do tamanho do passo quando o programador de taxa de aprendizagem é step.
Deve ser um inteiro positivo.
5
warmup_cosine_lr_cycles Valor do ciclo cosine quando o programador de taxas de aprendizagem é warmup_cosine.
Deve ser um flutuador no alcance [0, 1].
0,45
warmup_cosine_lr_warmup_epochs Valor das épocas de aquecimento quando o programador de taxas de aprendizagem é warmup_cosine.
Deve ser um inteiro positivo.
2
optimizer Tipo de otimizador.
Deve ser um dos doissgdadam, adamw. .
sgd
momentum Valor do impulso quando o optimizador é sgd.
Deve ser um flutuador no alcance [0, 1].
0,9
weight_decay O valor da decadência de peso quando o optimizador é sgd, adamou adamw.
Deve ser um flutuador no alcance [0, 1].
1e-4
nesterov Ativar nesterov quando o optimizador estiver sgd.
Deve ser 0 ou 1.
1
beta1 Valor de beta1 quando o optimizador é adam ou adamw.
Deve ser um flutuador no alcance [0, 1].
0,9
beta2 Valor de beta2 quando o optimizador é adam ou adamw.
Deve ser um flutuador no alcance [0, 1].
0.999
ams_gradient Ativar ams_gradient quando o optimizador estiver adam ou adamw. .
Deve ser 0 ou 1.
0
evaluation_frequency Frequência para avaliar conjunto de dados de validação para obter pontuações métricas.
Deve ser um inteiro positivo.
1
checkpoint_frequency Frequência para armazenar postos de controlo de modelos.
Deve ser um inteiro positivo.
Checkpoint na época com a melhor métrica primária na validação.
checkpoint_run_id A identificação da experiência que tem um ponto de verificação pré-treinado para treino incremental. nenhum padrão
layers_to_freeze Quantas camadas congelar para o seu modelo. Por exemplo, passar 2 como valor para seresnext meios de congelação camadas0 e camada1 referindo-se à informação de camada de modelo abaixo suportada.
Deve ser um 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.']
nenhum padrão

Hiperparímetros específicos de classificação de imagem (multi-classe e multi-rótulos)

A tabela seguinte resume os hiperparmetros para tarefas de classificação de imagem (multi-classe e multi-rótulos).

Nome do parâmetro Descrição Predefinição
weighted_loss
  • 0 para não perder ponderado.
  • 1 para perda ponderada com sqrt. (class_weights)
  • 2 para perda ponderada com class_weights.
  • Deve ser 0 ou 1 ou 2.
  • 0
    validation_resize_size
  • Tamanho da imagem para redimensionar antes de ser cortado para conjunto de dados de validação.
  • Deve ser um inteiro positivo.

    Notas:
  • seresnext não tem um tamanho arbitrário.
  • O treino pode entrar na CUDA OOM se o tamanho for muito grande.
  • 256
    validation_crop_size
  • Tamanho da cultura de imagem que é entrada na sua rede neural para conjunto de dados de validação.
  • Deve ser um inteiro positivo.

    Notas:
  • seresnext não tem um tamanho arbitrário.
  • As variantes vit devem ter o mesmo validation_crop_size e training_crop_size.
  • O treino pode entrar na CUDA OOM se o tamanho for muito grande.
  • 224
    training_crop_size
  • Tamanho da colheita de imagem que é entrada para a sua rede neural para conjunto de dados de comboio.
  • Deve ser um inteiro positivo.

    Notas:
  • seresnext não tem um tamanho arbitrário.
  • As variantes vit devem ter o mesmo validation_crop_size e training_crop_size.
  • O treino pode entrar na CUDA OOM se o tamanho for muito grande.
  • 224

    Hiperparímetros específicos de deteção e segmentação de casos de deteção de objetos

    Os hiperparmetros a seguir são para tarefas de deteção de objetos e segmentação de instâncias.

    Aviso

    Estes parâmetros não são suportados com o yolov5 algoritmo. Consulte a secção de hiperparmetros específicos do modelo para yolov5 hiperparmetros suportados.

    Nome do parâmetro Descrição Predefinição
    validation_metric_type Método de computação métrica para usar para métricas de validação.
    Deve ser none, coco, vocou coco_voc.
    voc
    validation_iou_threshold Limiar IOU para correspondência de caixa ao calcular métricas de validação.
    Deve ser um flutuador no intervalo [0.1, 1].
    0,5
    min_size Tamanho mínimo da imagem a ser redimensionada antes de alimentá-la à espinha dorsal.
    Deve ser um inteiro positivo.

    Nota: o treino pode entrar na CUDA OOM se o tamanho for demasiado grande.
    600
    max_size Tamanho máximo da imagem a ser redimensionada antes de alimentá-la à espinha dorsal.
    Deve ser um inteiro positivo.

    Nota: o treino pode entrar na CUDA OOM se o tamanho for demasiado grande.
    1333
    box_score_threshold Durante a inferência, apenas as propostas de retorno com uma pontuação de classificação superior box_score_thresholda .
    Deve ser um flutuador no alcance [0, 1].
    0.3
    nms_iou_threshold Limiar IOU (intersecção sobre a união) utilizado na supressão não máxima (SNM) para o cabeça de previsão. Usado durante a inferência.
    Deve ser um flutuador no alcance [0, 1].
    0,5
    box_detections_per_image Número máximo de deteções por imagem, para todas as classes.
    Deve ser um inteiro positivo.
    100
    tile_grid_size O tamanho da grelha a utilizar para a inclinação de cada imagem.
    Nota: tile_grid_size não deve ser Nenhum para permitir a lógica de deteção de pequenos objetos
    Deve ser passado como uma corda em formato '3x2'. Exemplo: -tile_grid_size '3x2'
    Sem Predefinição
    tile_overlap_ratio Relação de sobreposição entre azulejos adjacentes em cada dimensão.
    Deve ser flutuado na gama de [0, 1)
    0,25
    tile_predictions_nms_threshold O limiar IOU para utilizar para executar NMS enquanto funde previsões de azulejos e imagem. Usado em validação/inferência.
    Deve ser flutuador no intervalo de [0, 1]
    0,25

    Passos seguintes