Ссылка для ultralytics/models/utils/loss.py
Примечание
Этот файл доступен по адресу https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/models/utils/loss .py. Если ты заметил проблему, пожалуйста, помоги исправить ее, отправив Pull Request 🛠️. Спасибо 🙏!
ultralytics.models.utils.loss.DETRLoss
Базы: Module
Класс потерь DETR (DEtection TRansformer). Этот класс вычисляет и возвращает различные компоненты потерь для DETR-модели обнаружения объектов. Он вычисляет потери классификации, потери ограничительного поля, потери GIoU и, по желанию, вспомогательные потери. потери.
Атрибуты:
Имя | Тип | Описание |
---|---|---|
nc |
int
|
Количество классов. |
loss_gain |
dict
|
Коэффициенты для различных компонентов потерь. |
aux_loss |
bool
|
Нужно ли вычислять вспомогательные потери. |
use_fl |
bool
|
Использовать FocalLoss или нет. |
use_vfl |
bool
|
Использовать VarifocalLoss или нет. |
use_uni_match |
bool
|
Нужно ли использовать фиксированный слой для назначения меток для вспомогательной ветки. |
uni_match_ind |
int
|
Фиксированные индексы слоя, которые нужно использовать, если |
matcher |
HungarianMatcher
|
Объект для вычисления стоимости совпадения и индексов. |
fl |
FocalLoss or None
|
Фокальный объект потери, если |
vfl |
VarifocalLoss or None
|
Варифокальный объект потери, если |
device |
device
|
Устройство, на котором хранятся тензоры. |
Исходный код в ultralytics/models/utils/loss.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 |
|
__init__(nc=80, loss_gain=None, aux_loss=True, use_fl=True, use_vfl=False, use_uni_match=False, uni_match_ind=0)
Функция потерь DETR.
Параметры:
Имя | Тип | Описание | По умолчанию |
---|---|---|---|
nc |
int
|
Количество классов. |
80
|
loss_gain |
dict
|
Коэффициент потерь. |
None
|
aux_loss |
bool
|
Если 'aux_loss = True', то будут использоваться потери на каждом уровне декодера. |
True
|
use_vfl |
bool
|
Использовать VarifocalLoss или нет. |
False
|
use_uni_match |
bool
|
Нужно ли использовать фиксированный слой для назначения меток для вспомогательной ветки. |
False
|
uni_match_ind |
int
|
Фиксированные индексы слоя. |
0
|
Исходный код в ultralytics/models/utils/loss.py
forward(pred_bboxes, pred_scores, batch, postfix='', **kwargs)
Параметры:
Имя | Тип | Описание | По умолчанию |
---|---|---|---|
pred_bboxes |
Tensor
|
[l, b, query, 4] |
требуется |
pred_scores |
Tensor
|
[l, b, query, num_classes] |
требуется |
batch |
dict
|
Диктант включает в себя: gt_cls (torch.Tensor) с формой [num_gts, ], gt_bboxes (torch.Tensor): [num_gts, 4], gt_groups (List(int)): список длиной в пакетный размер, включающий количество gts каждого изображения. |
требуется |
postfix |
str
|
постфикс имени потери. |
''
|
Исходный код в ultralytics/models/utils/loss.py
ultralytics.models.utils.loss.RTDETRDetectionLoss
Базы: DETRLoss
Класс Real-Time DeepTracker (RT-DETR) Detection Loss, который расширяет DETRLoss.
Этот класс вычисляет потери обнаружения для модели RT-DETR , которые включают стандартные потери обнаружения, а также дополнительные потери при обучении денуазированию, если тебе предоставлены метаданные о денуазировании.
Исходный код в ultralytics/models/utils/loss.py
forward(preds, batch, dn_bboxes=None, dn_scores=None, dn_meta=None)
Пройдите вперед, чтобы вычислить потери при обнаружении.
Параметры:
Имя | Тип | Описание | По умолчанию |
---|---|---|---|
preds |
tuple
|
Предсказанные ограничительные рамки и показатели. |
требуется |
batch |
dict
|
Пакетные данные, содержащие информацию об истинном положении дел. |
требуется |
dn_bboxes |
Tensor
|
Денуация ограничительных коробок. По умолчанию - None. |
None
|
dn_scores |
Tensor
|
Показатели денуазинга. По умолчанию - None. |
None
|
dn_meta |
dict
|
Метаданные для денуайзинга. По умолчанию - None. |
None
|
Возвращается:
Тип | Описание |
---|---|
dict
|
Словарь, содержащий общую потерю и, если применимо, потерю деноусинга. |
Исходный код в ultralytics/models/utils/loss.py
get_dn_match_indices(dn_pos_idx, dn_num_group, gt_groups)
staticmethod
Получи индексы совпадений для денуазинга.
Параметры:
Имя | Тип | Описание | По умолчанию |
---|---|---|---|
dn_pos_idx |
List[Tensor]
|
Список тензоров, содержащих положительные индексы, для денуайзинга. |
требуется |
dn_num_group |
int
|
Количество групп денуайзинга. |
требуется |
gt_groups |
List[int]
|
Список целых чисел, обозначающих количество истин для каждого изображения. |
требуется |
Возвращается:
Тип | Описание |
---|---|
List[tuple]
|
Список кортежей, содержащих совпадающие индексы для денуайзинга. |