다음을 통해 공유


자동화된 Machine Learning의 컴퓨터 비전 작업에 대한 하이퍼 매개 변수

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

자동화된 ML 실험에서 컴퓨터 비전 작업에 특별히 사용할 수 있는 하이퍼 매개 변수를 알아봅니다.

Computer Vision 작업을 지원하여 모델 아키텍처를 제어하고 하이퍼 매개 변수를 쓸어버릴 수 있습니다. 이러한 모델 아키텍처 및 하이퍼 매개 변수는 스윕에 대한 매개 변수 공간으로 전달됩니다. 노출된 많은 하이퍼 매개 변수가 모델에 구애받지 않지만 하이퍼 매개 변수가 모델별 또는 작업별인 경우가 있습니다.

모델별 하이퍼 매개 변수

이 표에서는 아키텍처와 관련된 하이퍼 매개 변수를 yolov5 요약합니다.

매개 변수 이름 설명 기본값
validation_metric_type 유효성 검사 메트릭에 사용할 메트릭 컴퓨팅 방법입니다.
none, coco, voc 또는 coco_voc여야 합니다.
voc
validation_iou_threshold 유효성 검사 메트릭을 계산할 때 상자 일치에 대한 IOU 임계값입니다.
[0.1, 1] 범위의 부동 소수점이어야 합니다.
0.5
image_size 학습 및 유효성 검사를 위한 이미지 크기입니다.
양의 정수여야 합니다.

참고: 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다.
640
model_size 모델 크기입니다.
small, medium, large 또는 extra_large여야 합니다.

참고: 모델 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다.
medium
multi_scale 이미지 크기를 +/- 50%까지 변경하여 다중 크기 조정 이미지 사용
0 또는 1이어야 합니다.

참고: GPU 메모리가 충분하지 않으면 학습 실행이 CUDA OOM에 포함될 수 있습니다.
0
box_score_threshold 유추하는 동안 점수가 box_score_threshold보다 큰 제안만 반환합니다. 점수는 객관성 점수와 분류 확률을 곱한 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.1
nms_iou_threshold 비 최대 제거 사후 처리에서 유추하는 동안 사용되는 IOU 임계값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.5
tile_grid_size 각 이미지를 타일링하는 데 사용할 격자 크기입니다.
참고: 작은 개체 감지 논리를 사용하도록 설정하려면 tile_grid_size가 None이 아니어야 합니다.
'3x2' 형식의 문자열로 전달되어야 합니다. 예: --tile_grid_size '3x2'
기본값 없음
tile_overlap_ratio 각 차원에서 인접한 타일 간의 겹침 비율입니다.
[0, 1) 범위에서 부동이어야 합니다.
0.25
tile_predictions_nms_threshold 타일과 이미지의 예측을 병합하는 동안 NMS를 수행하는 데 사용할 IOU 임계값입니다. 유효성 검사/유추에 사용됩니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.25

이 표에는 유추 중 인스턴스 구분에 대해 maskrcnn_*에 관련된 하이퍼 매개 변수가 요약됩니다.

매개 변수 이름 설명 기본값
mask_pixel_score_threshold 개체 마스크의 일부로 픽셀을 고려하기 위한 점수 구분입니다. 0.5
max_number_of_polygon_points 마스크에서 변환한 후 다각형의 최대 좌표 쌍 수(x, y)입니다. 100
export_as_image 마스크를 이미지로 내보냅니다. False
image_type 마스크를 내보내는 이미지 유형입니다(jpg, png, bmp 옵션). JPG

모델 독립적 하이퍼 매개 변수

다음 표에서는 모델 독립적 하이퍼 매개 변수에 대해 설명합니다.

매개 변수 이름 설명 기본값
number_of_epochs 학습 Epoch의 수입니다.
양의 정수여야 합니다.
15
(yolov5: 30 제외)
training_batch_size 학습 일괄 처리 크기입니다.
양의 정수여야 합니다.
다중 클래스/다중 레이블: 78
(vit-variant 제외:
vits16r224: 128
vitb16r224: 48
vitl16r224:10 제외)

개체 감지: 2
(제외 yolov5: 16)

인스턴스 구분: 2

참고: 기본값은 12GiB GPU 메모리에서 사용할 수 있는 가장 큰 일괄 처리 크기입니다.
validation_batch_size 유효성 검사 일괄 처리 크기입니다.
양의 정수여야 합니다.
다중 클래스/다중 레이블: 78
(vit-variant 제외:
vits16r224: 128
vitb16r224: 48
vitl16r224:10 제외)

개체 감지: 1
(제외 yolov5: 16)

인스턴스 구분: 1

참고: 기본값은 12GiB GPU 메모리에서 사용할 수 있는 가장 큰 일괄 처리 크기입니다.
gradient_accumulation_step 기울기 누적은 모델 가중치를 업데이트하지 않고 구성된 수의 gradient_accumulation_step을 실행하면서 해당 단계의 기울기를 누적한 다음 누적된 기울기를 사용하여 가중치 업데이트를 컴퓨팅하는 것을 의미합니다.
양의 정수여야 합니다.
1
early_stopping 학습 중 조기 중지 논리를 사용하도록 설정합니다.
0 또는 1이어야 합니다.
1
early_stopping_patience 최소 Epoch 또는 유효성 검사 평가 수
실행이 중지되기 전에 기본 메트릭이 개선되지 않습니다.
양의 정수여야 합니다.
5
early_stopping_delay 대기할 최소 Epoch 또는 유효성 검사 평가 수
이전의 기본 메트릭 개선은 조기 중지를 위해 추적됩니다.
양의 정수여야 합니다.
5
learning_rate 초기 학습률입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
다중 클래스: 0.01
(vit-variant 제외:
vits16r224: 0.0125
vitb16r224: 0.0125
vitl16r224: 0.001)

다중 레이블: 0.035
(vit-variants:
vits16r224: 0.025
vitb16r224: 0.025
vitl16r224: 0.002)

개체 감지: 0.005
(제외 yolov5: 0.01)

인스턴스 구분: 0.005
learning_rate_scheduler 학습률 스케줄러의 유형입니다.
warmup_cosine 또는 step이어야 합니다.
warmup_cosine
step_lr_gamma 학습률 스케줄러가 step일 때 감마 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.5
step_lr_step_size 학습률 스케줄러가 step일 때 단계 크기의 값입니다.
양의 정수여야 합니다.
5
warmup_cosine_lr_cycles 학습률 스케줄러가 warmup_cosine일 때 코사인 주기 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.45
warmup_cosine_lr_warmup_epochs 학습률 스케줄러가 warmup_cosine일 때 워밍업 epoch의 값입니다.
양의 정수여야 합니다.
2
optimizer 최적화 프로그램의 유형입니다.
sgd, adam, adamw여야 합니다.
sgd
momentum 최적화 프로그램이 sgd일 때 모멘텀 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.9
weight_decay 최적화 프로그램이 sgd, adam 또는 adamw일 때 가중치 감소 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
1e-4
nesterov 최적화 프로그램이 sgd일 때 nesterov를 사용하도록 설정합니다.
0 또는 1이어야 합니다.
1
beta1 최적화 프로그램이 adam 또는 adamw일 때 beta1의 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.9
beta2 최적화 프로그램이 adam 또는 adamw일 때 beta2의 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.999
ams_gradient 최적화 프로그램이 adam 또는 adamw인 경우 ams_gradient를 사용하도록 설정합니다.
0 또는 1이어야 합니다.
0
evaluation_frequency 메트릭 점수를 얻기 위해 유효성 검사 데이터 세트를 평가하는 빈도입니다.
양의 정수여야 합니다.
1
checkpoint_frequency 모델 검사점을 저장할 빈도입니다.
양의 정수여야 합니다.
유효성 검사에서 가장 좋은 기본 메트릭이 있는 Epoch의 검사점입니다.
checkpoint_run_id 증분 학습에 대한 미리 학습된 검사점이 있는 실험의 실행 ID입니다. 기본값 없음
layers_to_freeze 모델에 대해 고정할 레이어 수입니다. 예를 들어, seresnext의 값으로 2를 전달하면 아래 지원되는 모델 레이어 정보를 참조하여 layer0 및 layer1이 고정됩니다.
양의 정수여야 합니다.

- '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.'] * : ['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''vit'['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.']
기본값 없음

이미지 분류(다중 클래스 및 다중 레이블) 특정 하이퍼 매개 변수

다음 표에는 이미지 분류(다중 클래스 및 다중 레이블) 작업에 대한 하이퍼 매개 변수가 요약되어 있습니다.

매개 변수 이름 설명 기본값
model_name 현재 이미지 분류 작업에 사용할 모델 이름입니다.

는 , ,resnet18, resnet34, resnet50, resnet101resnet152, vits16r224resnest50vitl16r224resnest101vitb16r224seresnext중 하나mobilenetv2여야 합니다.
seresnext
weighted_loss - 가중치 손실이 없는 경우 0입니다.
- sqrt를 사용한 가중치 손실의 경우 1입니다. (class_weights)
- class_weights 가중치 손실의 경우 2.
- 0 또는 1 또는 2여야 합니다.
0
validation_resize_size - 유효성 검사 데이터 세트를 자르기 전에 크기를 조정할 이미지 크기입니다.
- 양의 정수여야 합니다.

노트:
- seresnext는 임의의 크기를 사용하지 않습니다.
- 크기가 너무 크
면 학습 실행이 CUDA OOM에 들어갈 수 있습니다.
256
validation_crop_size - 유효성 검사 데이터 세트를 위해 신경망에 입력되는 이미지 자르기 크기입니다.
- 양의 정수여야 합니다.

노트:
- seresnext는 임의의 크기를 사용하지 않습니다.
- ViT-variantsvalidation_crop_sizetraining_crop_size가 같아야 합니다.
- 크기가 너무 크
면 학습 실행이 CUDA OOM에 들어갈 수 있습니다.
224
training_crop_size - 학습 데이터 세트를 위해 신경망에 입력되는 이미지 자르기 크기입니다.
- 양의 정수여야 합니다.

노트:
- seresnext는 임의의 크기를 사용하지 않습니다.
- ViT-variantsvalidation_crop_sizetraining_crop_size가 같아야 합니다.
- 크기가 너무 크
면 학습 실행이 CUDA OOM에 들어갈 수 있습니다.
224

개체 검색 및 인스턴스 구분 작업별 하이퍼 매개 변수

다음 하이퍼 매개 변수는 개체 감지 및 인스턴스 분할 작업을 위한 것입니다.

Warning

이러한 매개 변수는 아키텍처에서 yolov5 지원되지 않습니다. 지원되는 yolov5 하이퍼 매개 변수는 모델별 하이퍼 매개 변수 섹션을 참조하세요.

매개 변수 이름 설명 기본값
model_name 현재 이미지 분류 작업에 사용할 모델 이름입니다.
- 개체 검색 작업의 경우 , , fasterrcnn_resnet18_fpnfasterrcnn_resnet34_fpn, fasterrcnn_resnet152_fpnfasterrcnn_resnet50_fpnretinanet_resnet50_fpnfasterrcnn_resnet101_fpn중 하나yolov5여야 합니다.
- 인스턴스 구분 작업의 경우 , , , maskrcnn_resnet34_fpnmaskrcnn_resnet50_fpnmaskrcnn_resnet101_fpnmaskrcnn_resnet18_fpn하나여야 합니다.maskrcnn_resnet152_fpn
- 개체 검색 작업의 경우 fasterrcnn_resnet50_fpn
- 인스턴스 구분 태스크의 경우 maskrcnn_resnet50_fpn
validation_metric_type 유효성 검사 메트릭에 사용할 메트릭 컴퓨팅 방법입니다.
none, coco, voc 또는 coco_voc여야 합니다.
voc
validation_iou_threshold 유효성 검사 메트릭을 계산할 때 상자 일치에 대한 IOU 임계값입니다.
[0.1, 1] 범위의 부동 소수점이어야 합니다.
0.5
min_size 백본에 공급하기 전에 크기를 조정할 이미지의 최소 크기입니다.
양의 정수여야 합니다.

참고: 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다.
600
max_size 백본에 공급하기 전에 크기를 조정할 이미지의 최대 크기입니다.
양의 정수여야 합니다.

참고: 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다.
1333
box_score_threshold 유추하는 동안 분류 점수가 box_score_threshold보다 큰 제안만 반환합니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.3
nms_iou_threshold 예측 헤드에 대한 NMS(최대값이 아닌 억제)에 사용되는 IOU(합집합 교차) 임계값입니다. 유추 중에 사용됩니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.5
box_detections_per_image 모든 클래스에 대해 이미지당 최대 검색 수입니다.
양의 정수여야 합니다.
100
tile_grid_size 각 이미지를 타일링하는 데 사용할 격자 크기입니다.
- tile_grid_size작은 개체 검색 논리를 사용하도록 설정하려면 None이 아니어야 합니다.
- tile_grid_size 인스턴스 구분 작업에는 지원되지 않습니다.
'3x2' 형식의 문자열로 전달되어야 합니다. 예: --tile_grid_size '3x2'
기본값 없음
tile_overlap_ratio 각 차원에서 인접한 타일 간의 겹침 비율입니다.
[0, 1) 범위에서 부동이어야 합니다.
0.25
tile_predictions_nms_threshold 타일과 이미지의 예측을 병합하는 동안 NMS를 수행하는 데 사용할 IOU 임계값입니다. 유효성 검사/유추에 사용됩니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.25

다음 단계