مرجع ل ultralytics/nn/modules/transformer.py
ملاحظه
هذا الملف متاح في https://github.com/ultralytics/ultralytics/ نقطة / الرئيسية /ultralytics/ nn / وحدات / transformer.py. إذا اكتشفت مشكلة ، فيرجى المساعدة في إصلاحها من خلال المساهمة في طلب 🛠️ سحب. شكرا لك 🙏!
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)
إلى الأمام ينشر الإدخال من خلال وحدة التشفير.
شفرة المصدر في 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
يبني 2D جيب جيب التمام موقف التضمين.
شفرة المصدر في 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
محول الرؤية https://arxiv.org/abs/2010.11929.
شفرة المصدر في ultralytics/nn/modules/transformer.py
__init__(c1, c2, num_heads, num_layers)
تهيئة وحدة محول مع تضمين الموضع وعدد محدد من الرؤوس والطبقات.
شفرة المصدر في ultralytics/nn/modules/transformer.py
forward(x)
إلى الأمام ينشر الإدخال من خلال وحدة عنق الزجاجة.
شفرة المصدر في 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
وحدة تطبيع الطبقة ثنائية الأبعاد مستوحاة من تطبيقات 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
__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
|
[بكالوريوس ، query_length ، ج] |
مطلوب |
refer_bbox |
Tensor
|
[bs ، query_length ، n_levels ، 2] ، النطاق في [0 ، 1] ، أعلى اليسار (0,0) ، أسفل اليمين (1 ، 1) ، بما في ذلك منطقة الحشو |
مطلوب |
value |
Tensor
|
[بكالوريوس ، value_length ، ج] |
مطلوب |
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]، صحيح للعناصر غير الحشوية، خطأ لعناصر الحشو |
None
|
ارجاع:
اسم | نوع | وصف |
---|---|---|
output |
Tensor
|
[bs، Length_{استعلام}، C] |
شفرة المصدر في ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.DeformableTransformerDecoderLayer
قواعد: Module
طبقة فك ترميز المحولات القابلة للتشوه مستوحاة من تطبيقات 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)
قم بإجراء تمرير أمامي عبر جزء شبكة التغذية الأمامية من الطبقة.
with_pos_embed(tensor, pos)
staticmethod
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)
قم بإجراء التمرير الأمامي عبر وحدة فك الترميز بأكملها.