자동화된 Machine Learning(v1)의 컴퓨터 비전 작업에 대한 하이퍼 매개 변수
적용 대상:Python SDK azureml v1
자동화된 ML 실험에서 컴퓨터 비전 작업에 특별히 사용할 수 있는 하이퍼 매개 변수를 알아봅니다.
Computer Vision 작업을 지원하여 모델 알고리즘을 제어하고 하이퍼 매개 변수를 스윕할 수 있습니다. 이러한 모델 알고리즘과 하이퍼 매개 변수는 스윕을 위한 매개 변수 공간으로 전달됩니다. 노출된 많은 하이퍼 매개 변수가 모델에 구애받지 않지만 하이퍼 매개 변수가 모델별 또는 작업별인 경우가 있습니다.
모델별 하이퍼 매개 변수
이 표에는 yolov5
알고리즘과 관련된 하이퍼 매개 변수가 요약되어 있습니다.
매개 변수 이름 | 설명 | 기본값 |
---|---|---|
validation_metric_type |
유효성 검사 메트릭에 사용할 메트릭 컴퓨팅 방법입니다. none , coco , voc 또는 coco_voc 여야 합니다. |
voc |
validation_iou_threshold |
유효성 검사 메트릭을 계산할 때 상자 일치에 대한 IOU 임계값입니다. [0.1, 1] 범위의 부동 소수점이어야 합니다. |
0.5 |
img_size |
학습 및 유효성 검사를 위한 이미지 크기입니다. 양의 정수여야 합니다. 참고: 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다. |
640 |
model_size |
모델 크기입니다. small , medium , large 또는 xlarge 여야 합니다. 참고: 모델 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다. |
medium |
multi_scale |
이미지 크기를 +/- 50%까지 변경하여 다중 크기 조정 이미지 사용 0 또는 1이어야 합니다. 참고: GPU 메모리가 충분하지 않으면 학습 실행이 CUDA OOM에 포함될 수 있습니다. |
0 |
box_score_thresh |
유추하는 동안 점수가 box_score_thresh 보다 큰 제안만 반환합니다. 점수는 객관성 점수와 분류 확률을 곱한 값입니다. [0, 1] 범위의 부동 소수점이어야 합니다. |
0.1 |
nms_iou_thresh |
비 최대 제거 사후 처리에서 유추하는 동안 사용되는 IOU 임계값입니다. [0, 1] 범위의 부동 소수점이어야 합니다. |
0.5 |
tile_grid_size |
각 이미지를 타일링하는 데 사용할 격자 크기입니다. 참고: 작은 개체 감지 논리를 사용하도록 설정하려면 tile_grid_size가 None이 아니어야 합니다. 문자열로 전달된 두 정수의 튜플입니다. 예: --tile_grid_size "(3, 2)" |
기본값 없음 |
tile_overlap_ratio |
각 차원에서 인접한 타일 간의 겹침 비율입니다. [0, 1) 범위에서 부동이어야 합니다. |
0.25 |
tile_predictions_nms_thresh |
타일과 이미지의 예측을 병합하는 동안 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 메모리에서 사용할 수 있는 가장 큰 일괄 처리 크기입니다. |
grad_accumulation_step |
기울기 누적은 모델 가중치를 업데이트하지 않고 구성된 수의 grad_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 |
lr_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 |
amsgrad |
최적화 프로그램이 adam 또는 adamw 인 경우 amsgrad 를 사용하도록 설정합니다.0 또는 1이어야 합니다. |
0 |
evaluation_frequency |
메트릭 점수를 얻기 위해 유효성 검사 데이터 세트를 평가하는 빈도입니다. 양의 정수여야 합니다. |
1 |
checkpoint_frequency |
모델 검사점을 저장할 빈도입니다. 양의 정수여야 합니다. |
유효성 검사에서 가장 좋은 기본 메트릭이 있는 Epoch의 검사점입니다. |
checkpoint_run_id |
증분 학습에 대한 미리 학습된 검사점이 있는 실험의 실행 ID입니다. | 기본값 없음 |
checkpoint_dataset_id |
증분 학습을 위해 미리 학습된 검사점이 포함된 FileDataset ID입니다. checkpoint_dataset_id 와 함께 checkpoint_filename 을 전달해야 합니다. |
기본값 없음 |
checkpoint_filename |
증분 학습을 위한 FileDataset의 미리 학습된 검사점 파일 이름입니다. checkpoint_filename 와 함께 checkpoint_dataset_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.'], '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.'] |
기본값 없음 |
이미지 분류(다중 클래스 및 다중 레이블) 특정 하이퍼 매개 변수
다음 표에는 이미지 분류(다중 클래스 및 다중 레이블) 작업에 대한 하이퍼 매개 변수가 요약되어 있습니다.
매개 변수 이름 | 설명 | 기본값 |
---|---|---|
weighted_loss |
가중 손실이 없는 경우 0입니다. sqrt를 사용한 가중치 손실의 경우 1. (class_weights) class_weights를 사용한 가중 손실의 경우 2입니다. 0 또는 1 또는 2여야 합니다. |
0 |
valid_resize_size |
노트: seresnext 는 임의의 크기를 사용하지 않습니다. |
256 |
valid_crop_size |
노트: seresnext 는 임의의 크기를 사용하지 않습니다. valid_crop_size 및 train_crop_size 가 같아야 합니다. |
224 |
train_crop_size |
노트: seresnext 는 임의의 크기를 사용하지 않습니다. valid_crop_size 및 train_crop_size 가 같아야 합니다. |
224 |
개체 검색 및 인스턴스 구분 작업별 하이퍼 매개 변수
다음 하이퍼 매개 변수는 개체 감지 및 인스턴스 분할 작업을 위한 것입니다.
Warning
이러한 매개 변수는 yolov5
알고리즘에서 지원되지 않습니다. 지원되는 yolov5
하이퍼 매개 변수는 모델별 하이퍼 매개 변수 섹션을 참조하세요.
매개 변수 이름 | 설명 | 기본값 |
---|---|---|
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_thresh |
유추하는 동안 분류 점수가 box_score_thresh 보다 큰 제안만 반환합니다. [0, 1] 범위의 부동 소수점이어야 합니다. |
0.3 |
nms_iou_thresh |
예측 헤드에 대한 NMS(최대값이 아닌 억제)에 사용되는 IOU(합집합 교차) 임계값입니다. 유추 중에 사용됩니다. [0, 1] 범위의 부동 소수점이어야 합니다. |
0.5 |
box_detections_per_img |
모든 클래스에 대해 이미지당 최대 검색 수입니다. 양의 정수여야 합니다. |
100 |
tile_grid_size |
각 이미지를 타일링하는 데 사용할 격자 크기입니다. 참고: 작은 개체 감지 논리를 사용하도록 설정하려면 tile_grid_size가 None이 아니어야 합니다. 문자열로 전달된 두 정수의 튜플입니다. 예: --tile_grid_size "(3, 2)" |
기본값 없음 |
tile_overlap_ratio |
각 차원에서 인접한 타일 간의 겹침 비율입니다. [0, 1) 범위에서 부동이어야 합니다. |
0.25 |
tile_predictions_nms_thresh |
타일과 이미지의 예측을 병합하는 동안 NMS를 수행하는 데 사용할 IOU 임계값입니다. 유효성 검사/유추에 사용됩니다. [0, 1] 범위의 부동 소수점이어야 합니다. |
0.25 |