Поделиться через


Гиперпараметры для задач компьютерного зрения в автоматизированном машинном обучении

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

Сведения о гиперпараметрах, используемых в задачах компьютерного зрения в автоматизированных экспериментах машинного обучения.

С поддержкой задач компьютерного зрения вы можете управлять архитектурой модели и выполнять гиперпараметры. Эти архитектуры модели и гиперпараметры передаются в качестве пространства параметров для очистки. Хотя многие из показанных гиперпараметров не зависят от модели, существуют экземпляры, в которых гиперпараметры зависят от конкретной задачи или конкретной модели.

Гиперпараметры, зависящие от модели

В этой таблице перечислены гиперпараметры, относящиеся к архитектуре yolov5 .

Наименование параметра Description По умолч.
validation_metric_type Метод вычисления метрик, который используется для расчета проверочных метрик.
Должно быть указано значение none, coco, voc или coco_voc.
voc
validation_iou_threshold Пороговое значение IOU для сопоставления полей при вычислении проверочных метрик.
Должно быть значением типа float в диапазоне [0,1, 1].
0,5
image_size Размер изображения для обучения и проверки.
Принимаются только положительные целые числа.

Примечание. Если размер слишком большой, в ходе обучения может возникать ошибка CUDA "Недостаточно памяти".
640
model_size Размер модели.
Должно быть указано значение small, medium, large или extra_large.

Примечание. Если размер слишком большой, в ходе обучения может возникать ошибка CUDA "Недостаточно памяти".
medium
multi_scale Включение многомасштабного изображения путем изменения размера изображения на +/- 50 %
Значение должно быть равно 0 или 1.

Примечание. Если объема памяти на видеокарте недостаточно, в ходе обучения может возникать ошибка CUDA "Недостаточно памяти".
0
box_score_threshold Во время вывода возвращают только предложения со значением оценки больше box_score_threshold. Оценка представляет собой произведение оценки objectness и вероятности классификации.
Должно быть значением типа float в диапазоне [0, 1].
0,1
nms_iou_threshold Пороговое значение IOU, используемое при выводе в ходе постобработки с подавлением немаксимумов.
Должно быть значением типа float в диапазоне [0, 1].
0,5
tile_grid_size Размер сетки, используемый для мозаичного заполнения каждого изображения.
Примечание. Чтобы включить алгоритм обнаружения небольших объектов параметр tile_grid_size не должен иметь значение None
Должен передаваться в виде строки в формате 3x2. Пример: --tile_grid_size '3x2'
Нет по умолчанию
tile_overlap_ratio Коэффициент перекрытия смежных фрагментов в каждом измерении.
Должно быть значением типа float в диапазоне [0, 1)
0.25
tile_predictions_nms_threshold Пороговое значение IOU, используемое для выполнения поиска немаксимумов (NMS) при объединении прогнозов из фрагментов и изображения. Используется при проверке или выводе.
Должно быть значением типа float в диапазоне [0, 1]
0.25

В этой таблице перечислены гиперпараметры, относящиеся к maskrcnn_*для сегментации экземпляров во время вывода.

Наименование параметра Description По умолч.
mask_pixel_score_threshold Граница отсечения, позволяющая определить, нужно ли рассматривать пиксел как часть маски объект. 0,5
max_number_of_polygon_points Максимальное число пар координат (x, y) в многоугольнике после преобразования из маски. 100
export_as_image Экспорт масок как изображений. False
image_type Тип изображения, в который выполняется экспорт маски (возможные значения: JPG, PNG, BMP). JPG

Гиперпараметры, не зависящие от модели

В следующей таблице описываются гиперпараметры, не зависящие от модели.

Наименование параметра Description По умолч.
number_of_epochs Число эпох обучения.
Принимаются только положительные целые числа.
15
(кроме yolov5: 30)
training_batch_size Размер пакета, используемого для обучения.
Принимаются только положительные целые числа.
Многоклассовая и многоэтапная метка: 78
(за исключением вариантов vit-variants:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

Обнаружение объектов: 2
(за исключением yolov5: 16)

Сегментация экземпляра: 2

Примечание. Значения по умолчанию — это самый большой размер пакета, который можно использовать в 12 ГиБ памяти GPU.
validation_batch_size Размер пакета, используемого для проверки.
Принимаются только положительные целые числа.
Многоклассовая и многоэтапная метка: 78
(за исключением вариантов vit-variants:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

Обнаружение объектов: 1
(за исключением yolov5: 16)

Сегментация экземпляра: 1

Примечание. Значения по умолчанию — это самый большой размер пакета, который можно использовать в 12 ГиБ памяти GPU.
gradient_accumulation_step Вычисление градиента означает выполнение настроенного числа gradient_accumulation_step без обновления весов модели при накоплении градиентов этих шагов, а затем использование накопленных градиентов для расчета новых весовых коэффициентов.
Принимаются только положительные целые числа.
1
early_stopping Включить алгоритм раннего прекращения логики во время обучения.
Значение должно быть равно 0 или 1.
1
early_stopping_patience Минимальное число эпох или проверочных оценок проверки
без улучшения основной метрики до остановки выполнения.
Принимаются только положительные целые числа.
5
early_stopping_delay Минимальное число эпох или проверочных оценок проверки для ожидания,
после которого начинается отслеживание основной метрики для раннего останова.
Принимаются только положительные целые числа.
5
learning_rate Начальная скорость обучения.
Должно быть значением типа float в диапазоне [0, 1].
Мультикласс: 0.01
(за исключением вариантов vit-variants:
vits16r224: 0.0125
vitb16r224: 0.0125
vitl16r224: 0.001)

Multi-label: 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.
Должно быть значением типа float в диапазоне [0, 1].
0,5
step_lr_step_size Значение шага, когда используется планировщик скорости обучения step.
Принимаются только положительные целые числа.
5
warmup_cosine_lr_cycles Значение цикла косинуса, когда используется планировщик скорости обучения warmup_cosine.
Должно быть значением типа float в диапазоне [0, 1].
0,45 %
warmup_cosine_lr_warmup_epochs Значение числа эпох прогрева, когда используется планировщик скорости обучения warmup_cosine.
Принимаются только положительные целые числа.
2
optimizer Тип оптимизатора.
Должно иметь одно из следующих значений: sgd, adam, adamw.
sgd
momentum Значение момента, когда используется оптимизатор sgd.
Должно быть значением типа float в диапазоне [0, 1].
0,9
weight_decay Значение сокращение веса, если используется оптимизатор sgd, adam или adamw.
Должно быть значением типа float в диапазоне [0, 1].
1e-4
nesterov Включить nesterov, если используется оптимизатор sgd.
Значение должно быть равно 0 или 1.
1
beta1 Значение равно beta1, если используется оптимизатор adam или adamw.
Должно быть значением типа float в диапазоне [0, 1].
0,9
beta2 Значение равно beta2, если используется оптимизатор adam или adamw.
Должно быть значением типа float в диапазоне [0, 1].
0,999
ams_gradient Включить ams_gradient, если используется оптимизатор adam или adamw.
Значение должно быть равно 0 или 1.
0
evaluation_frequency Частота оценки набора данных проверки для получения оценок метрик.
Принимаются только положительные целые числа.
1
checkpoint_frequency Частота сохранения контрольных точек модели.
Принимаются только положительные целые числа.
Контрольная точка в эпохе с лучшей основной метрикой при проверке.
checkpoint_run_id Идентификатор выполнения эксперимента, у которого есть контрольная точка предварительного обучения для добавочного обучения. значение по умолчанию отсутствует
layers_to_freeze Количество слоев, которое необходимо заморозить в модели. Например, если передать 2 в качестве значения seresnext, то будут заморожены 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'['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.']: ['layer0.', 'layer1.', 'layer2.', 'layer3.', 'layer4.']'vit' * * '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.']
значение по умолчанию отсутствует

Гиперпараметры для классификации изображений (с несколькими классами и с несколькими метками)

В следующей таблице перечислены гиперпараметры, используемые в задача классификации изображений (с несколькими классами и несколькими метками).

Наименование параметра Description По умолч.
model_name Имя модели, используемое для задачи классификации изображений.

Должен быть одним из mobilenetv2, resnet18, vitb16r224vitl16r224resnet34resnet50resnet101resnet152resnest50resnest101seresnextvits16r224
seresnext
weighted_loss - 0 для не взвешаемой потери.
- 1 для взвешаемой потери с sqrt. (class_weights)
- 2 для взвешаемой потери с class_weights.
— должно быть 0 или 1 или 2.
0
validation_resize_size — размер изображения, для которого необходимо изменить размер перед обрезкой для набора данных проверки.
- Должно быть положительным целым числом.

Примечания:
- seresnext не принимает произвольный размер.
— Учебный запуск может попасть в OOM CUDA, если размер слишком велик
.
256
validation_crop_size — Размер обрезки изображения, входной в нейронную сеть для проверки набора данных.
- Должно быть положительным целым числом.

Примечания:
- seresnext не принимает произвольный размер.
- Варианты ViT должны иметь одинаковые значения validation_crop_size и training_crop_size.
— Учебный запуск может попасть в OOM CUDA, если размер слишком велик
.
224
training_crop_size — Размер обрезки изображения, входной в нейронную сеть для обучения набора данных.
- Должно быть положительным целым числом.

Примечания:
- seresnext не принимает произвольный размер.
- Варианты ViT должны иметь одинаковые значения validation_crop_size и training_crop_size.
— Учебный запуск может попасть в OOM CUDA, если размер слишком велик
.
224

Гиперпараметры, относящиеся к задачам обнаружения объектов и задачам сегментации экземпляров

Следующие гиперпараметры предназначены для задач обнаружения объектов и сегментации экземпляров.

Предупреждение

Эти параметры не поддерживаются архитектурой yolov5 . Поддерживаемые гиперпараметры yolov5см. в разделе параметры, зависящие от модели.

Наименование параметра Description По умолч.
model_name Имя модели, используемое для задачи классификации изображений.
— Для задачи обнаружения объектов должна быть одна из yolov5, fasterrcnn_resnet18_fpn, fasterrcnn_resnet34_fpn, fasterrcnn_resnet50_fpn, fasterrcnn_resnet101_fpn, fasterrcnn_resnet152_fpn. retinanet_resnet50_fpn
— Для задачи сегментации экземпляров должна быть одна из maskrcnn_resnet18_fpn, , maskrcnn_resnet34_fpn, maskrcnn_resnet101_fpnmaskrcnn_resnet50_fpnmaskrcnn_resnet152_fpn
— для задачи обнаружения объектов, fasterrcnn_resnet50_fpn
— для задачи сегментации экземпляров, maskrcnn_resnet50_fpn
validation_metric_type Метод вычисления метрик, который используется для расчета проверочных метрик.
Должно быть указано значение none, coco, voc или coco_voc.
voc
validation_iou_threshold Пороговое значение IOU для сопоставления полей при вычислении проверочных метрик.
Должно быть значением типа float в диапазоне [0,1, 1].
0,5
min_size Минимальный размер повторно масштабируемого изображения перед подачей в основную сеть.
Принимаются только положительные целые числа.

Примечание. Если размер слишком большой, в ходе обучения может возникать ошибка CUDA "Недостаточно памяти".
600
max_size Максимальный размер повторно масштабируемого изображения перед подачей в основную сеть.
Принимаются только положительные целые числа.

Примечание. Если размер слишком большой, в ходе обучения может возникать ошибка CUDA "Недостаточно памяти".
1333
box_score_threshold Во время вывода возвращают только предложения с показателем классификации больше box_score_threshold.
Должно быть значением типа float в диапазоне [0, 1].
0,3
nms_iou_threshold Пороговое значение метрики IOU (Пересечение над объединением), используемое в методе подавления немаксимумов (NMS) для prediction head. Используется во время вывода.
Должно быть значением типа float в диапазоне [0, 1].
0,5
box_detections_per_image Максимальное число обнаружений на каждое изображение для всех классов.
Принимаются только положительные целые числа.
100
tile_grid_size Размер сетки, используемый для мозаичного заполнения каждого изображения.
- tile_grid_size Не должно быть нет, чтобы включить логику обнаружения небольших объектов.
- tile_grid_size не поддерживается для задач сегментации экземпляров.
Должен передаваться в виде строки в формате 3x2. Пример: --tile_grid_size '3x2'
Нет по умолчанию
tile_overlap_ratio Коэффициент перекрытия смежных фрагментов в каждом измерении.
Должно быть значением типа float в диапазоне [0, 1)
0.25
tile_predictions_nms_threshold Пороговое значение IOU, используемое для выполнения поиска немаксимумов (NMS) при объединении прогнозов из фрагментов и изображения. Используется при проверке или выводе.
Должно быть значением типа float в диапазоне [0, 1]
0.25

Следующие шаги