자동화된 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.0125vitb16r224 : 0.0125vitl16r224 : 0.001) 다중 레이블: 0.035 (vit-variants: vits16r224 : 0.025vitb16r224 : 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 , resnet101 resnet152 , vits16r224 resnest50 vitl16r224 resnest101 vitb16r224 seresnext 중 하나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-variants는 validation_crop_size 및 training_crop_size 가 같아야 합니다. - 크기가 너무 크면 학습 실행이 CUDA OOM에 들어갈 수 있습니다. |
224 |
training_crop_size |
- 학습 데이터 세트를 위해 신경망에 입력되는 이미지 자르기 크기입니다. - 양의 정수여야 합니다. 노트: - seresnext 는 임의의 크기를 사용하지 않습니다. - ViT-variants는 validation_crop_size 및 training_crop_size 가 같아야 합니다. - 크기가 너무 크면 학습 실행이 CUDA OOM에 들어갈 수 있습니다. |
224 |
개체 검색 및 인스턴스 구분 작업별 하이퍼 매개 변수
다음 하이퍼 매개 변수는 개체 감지 및 인스턴스 분할 작업을 위한 것입니다.
Warning
이러한 매개 변수는 아키텍처에서 yolov5
지원되지 않습니다. 지원되는 yolov5
하이퍼 매개 변수는 모델별 하이퍼 매개 변수 섹션을 참조하세요.
매개 변수 이름 | 설명 | 기본값 |
---|---|---|
model_name |
현재 이미지 분류 작업에 사용할 모델 이름입니다. - 개체 검색 작업의 경우 , , fasterrcnn_resnet18_fpn fasterrcnn_resnet34_fpn , fasterrcnn_resnet152_fpn fasterrcnn_resnet50_fpn retinanet_resnet50_fpn fasterrcnn_resnet101_fpn 중 하나yolov5 여야 합니다. - 인스턴스 구분 작업의 경우 , , , maskrcnn_resnet34_fpn maskrcnn_resnet50_fpn maskrcnn_resnet101_fpn 중 maskrcnn_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 |