Ссылка для ultralytics/nn/modules/transformer.py
Примечание
Этот файл доступен по адресу https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/nn/modules/transformer .py. Если ты заметил проблему, пожалуйста, помоги исправить ее, отправив Pull Request 🛠️. Спасибо 🙏!
ultralytics.nn.modules.transformer.TransformerEncoderLayer
Базы: Module
Определяет один слой кодера-трансформера.
Исходный код в ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0.0, act=nn.GELU(), normalize_before=False)
Инициализируй TransformerEncoderLayer с указанными параметрами.
Исходный код в ultralytics/nn/modules/transformer.py
forward(src, src_mask=None, src_key_padding_mask=None, pos=None)
Forward распространяет входной сигнал через модуль энкодера.
Исходный код в ultralytics/nn/modules/transformer.py
forward_post(src, src_mask=None, src_key_padding_mask=None, pos=None)
Выполни прямой проход с пост-нормализацией.
Исходный код в ultralytics/nn/modules/transformer.py
forward_pre(src, src_mask=None, src_key_padding_mask=None, pos=None)
Выполни прямой проход с предварительной нормализацией.
Исходный код в ultralytics/nn/modules/transformer.py
with_pos_embed(tensor, pos=None)
staticmethod
ultralytics.nn.modules.transformer.AIFI
Базы: TransformerEncoderLayer
Определяет слой трансформации AIFI.
Исходный код в ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0, act=nn.GELU(), normalize_before=False)
Инициализируй экземпляр AIFI с указанными параметрами.
build_2d_sincos_position_embedding(w, h, embed_dim=256, temperature=10000.0)
staticmethod
Строит двумерное синусно-косинусное позиционное вложение.
Исходный код в ultralytics/nn/modules/transformer.py
forward(x)
Проход вперед для трансформаторного слоя AIFI.
Исходный код в ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.TransformerLayer
Базы: Module
Слой трансформера https://arxiv.org/abs/2010.11929 (слои LayerNorm удалены для большей производительности).
Исходный код в ultralytics/nn/modules/transformer.py
__init__(c, num_heads)
Инициализируй механизм самовнушения, использующий линейные преобразования и многоголовое внимание.
Исходный код в ultralytics/nn/modules/transformer.py
forward(x)
ultralytics.nn.modules.transformer.TransformerBlock
Базы: Module
Трансформер Vision https://arxiv.org/abs/2010.11929.
Исходный код в ultralytics/nn/modules/transformer.py
__init__(c1, c2, num_heads, num_layers)
Инициализируй модуль Transformer с позиционным вложением и указанным количеством головок и слоев.
Исходный код в ultralytics/nn/modules/transformer.py
forward(x)
Forward распространяет вход через модуль узкого места.
Исходный код в ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLPBlock
Базы: Module
Реализует один блок многослойного перцептрона.
Исходный код в ultralytics/nn/modules/transformer.py
__init__(embedding_dim, mlp_dim, act=nn.GELU)
Инициализируй MLPBlock с указанными размерностью встраивания, размерностью MLP и функцией активации.
Исходный код в ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLP
Базы: Module
Реализуй простой многослойный перцептрон (также называемый FFN).
Исходный код в ultralytics/nn/modules/transformer.py
__init__(input_dim, hidden_dim, output_dim, num_layers)
Инициализируй MLP с заданными размерами входного, скрытого, выходного и количеством слоев.
Исходный код в ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.LayerNorm2d
Базы: Module
Модуль 2D Layer Normalization, вдохновленный реализациями Detectron2 и ConvNeXt.
Оригинальные реализации в https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py и https://github.com/facebookresearch/ConvNeXt/blob/main/models/convnext.py.
Исходный код в ultralytics/nn/modules/transformer.py
__init__(num_channels, eps=1e-06)
Инициализируй LayerNorm2d с заданными параметрами.
Исходный код в ultralytics/nn/modules/transformer.py
forward(x)
Выполни прямой проход для нормализации 2D-слоя.
Исходный код в ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MSDeformAttn
Базы: Module
Многомасштабный модуль деформируемого внимания, основанный на реализациях Deformable-DETR и PaddleDetection.
https://github.com/fundamentalvision/Deformable-DETR/blob/main/models/ops/modules/ms_deform_attn.py
Исходный код в ultralytics/nn/modules/transformer.py
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 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 |
|
__init__(d_model=256, n_levels=4, n_heads=8, n_points=4)
Инициализируй MSDeformAttn с заданными параметрами.
Исходный код в ultralytics/nn/modules/transformer.py
forward(query, refer_bbox, value, value_shapes, value_mask=None)
Выполни прямой проход для многомасштабного деформируемого внимания.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Параметры:
Имя | Тип | Описание | По умолчанию |
---|---|---|---|
query |
Tensor
|
[bs, query_length, C]. |
требуется |
refer_bbox |
Tensor
|
[bs, query_length, n_levels, 2], диапазон в [0, 1], верхний-левый (0,0), нижне-правый (1, 1), включая область подкладки |
требуется |
value |
Tensor
|
[bs, value_length, C]. |
требуется |
value_shapes |
List
|
[n_levels, 2], [(H_0, W_0), (H_1, W_1), ..., (H_{L-1}, W_{L-1})] |
требуется |
value_mask |
Tensor
|
[bs, value_length], True для элементов без вставки, False для элементов с вставкой |
None
|
Возвращается:
Имя | Тип | Описание |
---|---|---|
output |
Tensor
|
[bs, Length_{query}, C]. |
Исходный код в ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.DeformableTransformerDecoderLayer
Базы: Module
Deformable Transformer Decoder Layer, вдохновленный реализациями PaddleDetection и Deformable-DETR.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py https://github.com/fundamentalvision/Deformable-DETR/blob/main/models/deformable_transformer.py
Исходный код в ultralytics/nn/modules/transformer.py
__init__(d_model=256, n_heads=8, d_ffn=1024, dropout=0.0, act=nn.ReLU(), n_levels=4, n_points=4)
Инициализируй DeformableTransformerDecoderLayer с заданными параметрами.
Исходный код в ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, padding_mask=None, attn_mask=None, query_pos=None)
Выполни прямое прохождение через весь слой декодера.
Исходный код в ultralytics/nn/modules/transformer.py
forward_ffn(tgt)
Выполни прямое прохождение через часть слоя Feed-Forward Network.
with_pos_embed(tensor, pos)
staticmethod
Добавь позиционные вкрапления к входным данным tensor, если они были предоставлены.
ultralytics.nn.modules.transformer.DeformableTransformerDecoder
Базы: Module
Реализация деформируемого трансформаторного декодера на основе PaddleDetection.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Исходный код в ultralytics/nn/modules/transformer.py
__init__(hidden_dim, decoder_layer, num_layers, eval_idx=-1)
Инициализируй DeformableTransformerDecoder с заданными параметрами.
Исходный код в ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, bbox_head, score_head, pos_mlp, attn_mask=None, padding_mask=None)
Выполни прямое прохождение через весь декодер.