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

ПРИМЕНИМО К:Расширение ml Azure CLI версии 2 (текущая версия)Пакет SDK для Python azure-ai-ml версии 2 (текущая версия)

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

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

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

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

Имя параметра Описание По умолчанию
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_*для сегментации экземпляров во время вывода.

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

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

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

Имя параметра Описание По умолчанию
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)

Несколько меток: 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': ['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.']
Нет значения по умолчанию

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

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

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

Должен иметь одно из значений mobilenetv2, resnet18, resnet34, resnet101resnet50, resnet152, resnest50, seresnextresnest101, , vits16r224, vitb16r224, . vitl16r224
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см. в разделе параметры, зависящие от модели.

Имя параметра Описание По умолчанию
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_resnet50_fpn, , maskrcnn_resnet101_fpn. maskrcnn_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 Значение не должно иметь значение None для включения логики обнаружения небольших объектов .
- 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

Дальнейшие действия