Hiperparâmetros para tarefas de imagem digitalizada no machine learning automatizado

APLICA-SE A:Extensão v2 da CLI do Azure (atual)SDK python azure-ai-ml v2 (atual)

Saiba que hiperparâmetros estão disponíveis especificamente para tarefas de imagem digitalizada em experimentações de ML automatizadas.

Com o suporte para tarefas de imagem digitalizada, pode controlar a arquitetura do modelo e varrer hiperparâmetros. Estas arquiteturas de modelos e hiperparâmetros são transmitidos como o espaço de parâmetros para o varrimento. Embora muitos dos hiperparâmetros expostos sejam model-agnósticos, existem instâncias em que os hiperparâmetros são específicos do modelo ou específicos da tarefa.

Hiperparâmetros específicos do modelo

Esta tabela resume hiperparâmetros específicos da yolov5 arquitetura.

Nome do parâmetro Descrição Predefinição
validation_metric_type Método de computação de métricas a utilizar para métricas de validação.
Tem de ser none, coco, vocou coco_voc.
voc
validation_iou_threshold Limiar de IOU para a correspondência de caixas ao calcular métricas de validação.
Tem de ser um flutuante no intervalo [0,1, 1].
0,5
image_size Tamanho da imagem para preparação e validação.
Tem de ser um número inteiro positivo.

Nota: a execução de preparação pode entrar no OOM CUDA se o tamanho for demasiado grande.
640
model_size Tamanho do modelo.
Tem de ser small, medium, largeou extra_large.

Nota: a execução de preparação pode entrar no OOM CUDA se o tamanho do modelo for demasiado grande.
medium
multi_scale Ativar a imagem em várias escalas ao variar o tamanho da imagem em +/- 50%
Tem de ser 0 ou 1.

Nota: a execução de preparação pode entrar no OOM CUDA se não houver memória GPU suficiente.
0
box_score_threshold Durante a inferência, só devolve propostas com uma pontuação superior a box_score_threshold. A classificação é a multiplicação da classificação de objectness e da probabilidade de classificação.
Tem de ser um flutuante no intervalo [0, 1].
0.1
nms_iou_threshold Limiar de IOU utilizado durante a inferência no pós-processamento de supressão não máximo.
Tem de ser um flutuante no intervalo [0, 1].
0,5
tile_grid_size O tamanho da grelha a utilizar para tilar cada imagem.
Nota: tile_grid_size não pode ser Nenhum para ativar a lógica de deteção de objetos pequenos
Deve ser transmitida como uma cadeia no formato "3x2". Exemplo: --tile_grid_size "3x2"
Sem Predefinição
tile_overlap_ratio Proporção entre mosaicos adjacentes em cada dimensão.
Tem de estar flutuante no intervalo de [0, 1)
0,25
tile_predictions_nms_threshold O limiar IOU a utilizar para executar o NMS ao intercalar predições de mosaicos e imagens. Utilizado na validação/inferência.
Tem de estar flutuante no intervalo de [0, 1]
0,25

Esta tabela resume hiperparâmetros específicos da maskrcnn_* segmentação de instâncias durante a inferência.

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

Hiperparâmetros agnósticos de modelo

A tabela seguinte descreve os hiperparâmetros que são agnósticos do modelo.

Nome do parâmetro Descrição Predefinição
number_of_epochs Número de épocas de preparação.
Tem de ser um número inteiro positivo.
15
(exceto yolov5: 30)
training_batch_size Tamanho do lote de preparação.
Tem de ser um número inteiro positivo.
Várias classes/várias etiquetas: 78
(exceto variantes de vit:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

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

Segmentação de instâncias: 2

Nota: as predefinições são o maior tamanho de lote que pode ser utilizado na memória gpu gib 12.
validation_batch_size Tamanho do lote de validação.
Tem de ser um número inteiro positivo.
Várias classes/várias etiquetas: 78
(exceto variantes de vit:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

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

Segmentação de instâncias: 1

Nota: as predefinições são o maior tamanho de lote que pode ser utilizado na memória gpu gib 12.
gradient_accumulation_step Acumulação de gradação significa executar um número configurado de gradient_accumulation_step sem atualizar os pesos do modelo ao acumular as gradações desses passos e, em seguida, utilizar as gradações acumuladas para calcular as atualizações de peso.
Tem de ser um número inteiro positivo.
1
early_stopping Ative a lógica de paragem precoce durante a preparação.
Tem de ser 0 ou 1.
1
early_stopping_patience Número mínimo de épocas ou avaliações de validação com
sem melhorias nas métricas primárias antes de a execução ser parada.
Tem de 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 de a melhoria das métricas primárias ser controlada para paragem antecipada.
Tem de ser um número inteiro positivo.
5
learning_rate Taxa de aprendizagem inicial.
Tem de ser um flutuante no intervalo [0, 1].
Várias classes: 0.01
(exceto variantes de vit:
vits16r224: 0.0125
vitb16r224: 0.0125
vitl16r224: 0.001)

Várias etiquetas: 0,035
(exceto variantes de vit:
vits16r224: 0.025
vitb16r224: 0.025
vitl16r224: 0.002)

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

Segmentação de instâncias: 0,005
learning_rate_scheduler Tipo de agendador de taxa de aprendizagem.
Tem de ser warmup_cosine ou step.
warmup_cosine
step_lr_gamma Valor da gama quando o programador de taxa de aprendizagem é step.
Tem de ser um flutuante no intervalo [0, 1].
0,5
step_lr_step_size Valor do tamanho do passo quando o agendador da taxa de aprendizagem é step.
Tem de ser um número inteiro positivo.
5
warmup_cosine_lr_cycles Valor do ciclo de cosseno quando o agendador da taxa de aprendizagem é warmup_cosine.
Tem de ser um flutuante no intervalo [0, 1].
0,45
warmup_cosine_lr_warmup_epochs Valor das épocas de aquecimento quando o programador de taxa de aprendizagem é warmup_cosine.
Tem de ser um número inteiro positivo.
2
optimizer Tipo de otimizador.
Tem de ser , sgdadam, adamw.
sgd
momentum Valor de impulso quando o otimizador é sgd.
Tem de ser um flutuante no intervalo [0, 1].
0,9
weight_decay Valor da decadência de peso quando o otimizador é sgd, adamou adamw.
Tem de ser um flutuante no intervalo [0, 1].
1e-4
nesterov Ative nesterov quando o otimizador for sgd.
Tem de ser 0 ou 1.
1
beta1 Valor de beta1 quando o otimizador é adam ou adamw.
Tem de ser um flutuante no intervalo [0, 1].
0,9
beta2 Valor de beta2 quando o otimizador é adam ou adamw.
Tem de ser um flutuante no intervalo [0, 1].
0.999
ams_gradient Ative ams_gradient quando o otimizador é adam ou adamw.
Tem de ser 0 ou 1.
0
evaluation_frequency Frequência para avaliar o conjunto de dados de validação para obter classificações de métricas.
Tem de ser um número inteiro positivo.
1
checkpoint_frequency Frequência para armazenar pontos de verificação de modelos.
Tem de ser um número inteiro positivo.
Ponto de verificação na época com a melhor métrica primária em validação.
checkpoint_run_id O ID de execução da experimentação que tem um ponto de verificação pré-preparado para preparação incremental. sem predefinição
layers_to_freeze Quantas camadas fixar para o modelo. Por exemplo, transmitir 2 como valor para seresnext significa congelar camada0 e camada1, referindo-se às informações de camada de modelo suportadas abaixo.
Tem de 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 predefinição

Hiperparâmetros específicos de classificação de imagens (várias classes e várias etiquetas)

A tabela seguinte resume os hiperparâmetros para tarefas de classificação de imagens (várias classes e várias etiquetas).

Nome do parâmetro Descrição Predefinição
model_name Nome do modelo a utilizar para a tarefa de classificação de imagens em questão.

Tem de ser um de mobilenetv2, resnet18, resnet34, , resnet50, resnet152resnet101, , resnest50, resnest101, seresnext, vits16r224, , vitb16r224, . vitl16r224
seresnext
weighted_loss - 0 sem perda ponderada.
- 1 para perda ponderada com sqrt. (class_weights)
- 2 para perda ponderada com class_weights.
- Tem de ser 0, 1 ou 2.
0
validation_resize_size - Tamanho da imagem para o qual redimensionar antes de recortar para o conjunto de dados de validação.
- Tem de ser um número inteiro positivo.

Notas:
- seresnext não assume um tamanho arbitrário.
- A execução de preparação pode entrar no OOM cuda se o tamanho for demasiado grande
.
256
validation_crop_size - Tamanho do recorte de imagem que é introduzido na sua rede neural para o conjunto de dados de validação.
- Tem de ser um número inteiro positivo.

Notas:
- seresnext não assume um tamanho arbitrário.
- As variantes de ViT devem ter o mesmo validation_crop_size e training_crop_size.
- A execução de preparação pode entrar no OOM cuda se o tamanho for demasiado grande
.
224
training_crop_size - Tamanho do recorte de imagem que é introduzido na sua rede neural para preparar o conjunto de dados.
- Tem de ser um número inteiro positivo.

Notas:
- seresnext não assume um tamanho arbitrário.
- As variantes de ViT devem ter o mesmo validation_crop_size e training_crop_size.
- A execução de preparação pode entrar no OOM cuda se o tamanho for demasiado grande
.
224

Hiperparâmetros específicos da tarefa de segmentação de objetos e de deteção de objetos

Os seguintes hiperparâmetros destinam-se à deteção de objetos e a tarefas de segmentação de instâncias.

Aviso

Estes parâmetros não são suportados com a yolov5 arquitetura. Veja a secção de hiperparâmetros específicos do modelo para yolov5 obter os hiperparâmetros suportados.

Nome do parâmetro Descrição Predefinição
model_name Nome do modelo a utilizar para a tarefa de classificação de imagens em questão.
- Para a tarefa de deteção de objetos, tem de ser uma de 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âncias, tem de ser uma de maskrcnn_resnet18_fpn, maskrcnn_resnet34_fpn, maskrcnn_resnet50_fpn, , maskrcnn_resnet101_fpnmaskrcnn_resnet152_fpn
- Para a tarefa de deteção de objetos, 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étricas a utilizar para métricas de validação.
Tem de ser none, coco, vocou coco_voc.
voc
validation_iou_threshold Limiar IOU para a correspondência de caixas ao calcular métricas de validação.
Tem de ser um flutuante no intervalo [0.1, 1].
0,5
min_size Tamanho mínimo da imagem a ser redimensionada antes de a alimentar na estrutura principal.
Tem de ser um número inteiro positivo.

Nota: a execução de preparação pode entrar no OOM cuda se o tamanho for demasiado grande.
600
max_size Tamanho máximo da imagem a ser redimensionada antes de a alimentar na estrutura principal.
Tem de ser um número inteiro positivo.

Nota: a execução de preparação pode entrar no OOM cuda se o tamanho for demasiado grande.
1333
box_score_threshold Durante a inferência, só devolve propostas com uma classificação de classificação superior a box_score_threshold.
Tem de ser um flutuante no intervalo [0, 1].
0.3
nms_iou_threshold Limiar IOU (interseção sobre união) utilizado na supressão não máxima (NMS) para o cabeçalho de predição. Utilizado durante a inferência.
Tem de ser um flutuante no intervalo [0, 1].
0,5
box_detections_per_image Número máximo de deteções por imagem, para todas as classes.
Tem de ser um número inteiro positivo.
100
tile_grid_size O tamanho da grelha a utilizar para tilar cada imagem.
- tile_grid_size não pode ser Nenhum para ativar a lógica de deteção de objetos pequenos .
- tile_grid_size não é suportado para tarefas de segmentação de instâncias.
Deve ser transmitida como uma cadeia no formato "3x2". Exemplo: --tile_grid_size '3x2'
Sem Predefinição
tile_overlap_ratio Relação de sobreposição entre mosaicos adjacentes em cada dimensão.
Tem de estar a flutuar no intervalo de [0, 1)
0,25
tile_predictions_nms_threshold O limiar de IOU a utilizar para executar o NMS enquanto intercala predições de mosaicos e imagens. Utilizado na validação/inferência.
Tem de estar a flutuar no intervalo de [0, 1]
0,25

Passos seguintes