Referans için ultralytics/nn/modules/transformer.py
Not
Bu dosya https://github.com/ultralytics/ultralytics/blob/main/ ultralytics/nn/modules/transformer .py adresinde mevcuttur. Bir sorun tespit ederseniz lütfen bir Çekme İsteği 🛠️ ile katkıda bulunarak düzeltilmesine yardımcı olun. Teşekkürler 🙏!
ultralytics.nn.modules.transformer.TransformerEncoderLayer
Üsler: Module
Transformatör kodlayıcısının tek bir katmanını tanımlar.
Kaynak kodu ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0.0, act=nn.GELU(), normalize_before=False)
TransformerEncoderLayer'ı belirtilen parametrelerle başlatır.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward(src, src_mask=None, src_key_padding_mask=None, pos=None)
Girişi kodlayıcı modülü üzerinden ileri doğru yayar.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward_post(src, src_mask=None, src_key_padding_mask=None, pos=None)
Post-normalizasyon ile ileri geçiş gerçekleştirir.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward_pre(src, src_mask=None, src_key_padding_mask=None, pos=None)
Ön normalleştirme ile ileri geçiş gerçekleştirir.
Kaynak kodu ultralytics/nn/modules/transformer.py
with_pos_embed(tensor, pos=None)
staticmethod
ultralytics.nn.modules.transformer.AIFI
Üsler: TransformerEncoderLayer
AIFI dönüştürücü katmanını tanımlar.
Kaynak kodu ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0, act=nn.GELU(), normalize_before=False)
AIFI örneğini belirtilen parametrelerle başlatın.
build_2d_sincos_position_embedding(w, h, embed_dim=256, temperature=10000.0)
staticmethod
2B sinüs-kosinüs konum gömme oluşturur.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward(x)
AIFI transformatör katmanı için ileri geçiş.
Kaynak kodu ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.TransformerLayer
Üsler: Module
Transformatör katmanı https://arxiv.org/abs/2010.11929 (LayerNorm katmanları daha iyi performans için kaldırılmıştır).
Kaynak kodu ultralytics/nn/modules/transformer.py
__init__(c, num_heads)
Doğrusal dönüşümler ve çok kafalı dikkat kullanarak bir öz dikkat mekanizması başlatır.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward(x)
Giriş x'e bir transformatör bloğu uygulayın ve çıkışı döndürün.
ultralytics.nn.modules.transformer.TransformerBlock
Üsler: Module
Vision Transformer https://arxiv.org/abs/2010.11929.
Kaynak kodu ultralytics/nn/modules/transformer.py
__init__(c1, c2, num_heads, num_layers)
Konum gömme ve belirtilen sayıda kafa ve katman ile bir Transformatör modülünü başlatın.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward(x)
İleri, girişi darboğaz modülü üzerinden yayar.
Kaynak kodu ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLPBlock
Üsler: Module
Çok katmanlı bir algılayıcının tek bir bloğunu uygular.
Kaynak kodu ultralytics/nn/modules/transformer.py
__init__(embedding_dim, mlp_dim, act=nn.GELU)
MLPBlock'u belirtilen gömme boyutu, MLP boyutu ve aktivasyon fonksiyonu ile başlatın.
Kaynak kodu ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLP
Üsler: Module
Basit bir çok katmanlı algılayıcı (FFN olarak da adlandırılır) uygular.
Kaynak kodu ultralytics/nn/modules/transformer.py
__init__(input_dim, hidden_dim, output_dim, num_layers)
MLP'yi belirtilen girdi, gizli, çıktı boyutları ve katman sayısı ile başlatın.
Kaynak kodu ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.LayerNorm2d
Üsler: Module
Detectron2 ve ConvNeXt uygulamalarından esinlenen 2D Katman Normalleştirme modülü.
Orijinal uygulamalar https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py ve https://github.com/facebookresearch/ConvNeXt/blob/main/models/convnext.py.
Kaynak kodu ultralytics/nn/modules/transformer.py
__init__(num_channels, eps=1e-06)
LayerNorm2d'yi verilen parametrelerle başlatır.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward(x)
2B katman normalizasyonu için ileri geçiş gerçekleştirin.
Kaynak kodu ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MSDeformAttn
Üsler: Module
Deformable-DETR ve PaddleDetection uygulamalarına dayalı Çok Ölçekli Deforme Olabilir Dikkat Modülü.
https://github.com/fundamentalvision/Deformable-DETR/blob/main/models/ops/modules/ms_deform_attn.py
Kaynak kodu 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 öğesini verilen parametrelerle başlatır.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward(query, refer_bbox, value, value_shapes, value_mask=None)
Çok ölçekli deforme edilebilir dikkat için ileri geçiş gerçekleştirin.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Parametreler:
İsim | Tip | Açıklama | Varsayılan |
---|---|---|---|
query |
Tensor
|
[bs, query_length, C] |
gerekli |
refer_bbox |
Tensor
|
[bs, query_length, n_levels, 2], aralık [0, 1], sol üst (0,0), sağ alt (1, 1), dolgu alanı dahil |
gerekli |
value |
Tensor
|
[bs, value_length, C] |
gerekli |
value_shapes |
List
|
[n_levels, 2], [(H_0, W_0), (H_1, W_1), ..., (H_{L-1}, W_{L-1})] |
gerekli |
value_mask |
Tensor
|
[bs, value_length], Dolgusuz elemanlar için True, dolgulu elemanlar için False |
None
|
İade:
İsim | Tip | Açıklama |
---|---|---|
output |
Tensor
|
[bs, Length_{query}, C] |
Kaynak kodu ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.DeformableTransformerDecoderLayer
Üsler: Module
PaddleDetection ve Deformable-DETR uygulamalarından esinlenen Deformable Transformer Decoder Katmanı.
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
Kaynak kodu 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'ı verilen parametrelerle başlatır.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, padding_mask=None, attn_mask=None, query_pos=None)
Tüm kod çözücü katmanı boyunca ileri geçişi gerçekleştirin.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward_ffn(tgt)
Katmanın İleri Besleme Ağı kısmından ileri geçiş gerçekleştirin.
with_pos_embed(tensor, pos)
staticmethod
ultralytics.nn.modules.transformer.DeformableTransformerDecoder
Üsler: Module
PaddleDetection tabanlı Deforme Edilebilir Transformatör Kod Çözücünün Uygulanması.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Kaynak kodu ultralytics/nn/modules/transformer.py
__init__(hidden_dim, decoder_layer, num_layers, eval_idx=-1)
DeformableTransformerDecoder'ı verilen parametrelerle başlatır.
Kaynak kodu ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, bbox_head, score_head, pos_mlp, attn_mask=None, padding_mask=None)
Tüm dekoder boyunca ileri geçiş gerçekleştirin.