Referenz für ultralytics/nn/modules/transformer.py
Hinweis
Diese Datei ist verfügbar unter https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/nn/modules/transformer .py. Wenn du ein Problem entdeckst, hilf bitte mit, es zu beheben, indem du einen Pull Request 🛠️ einreichst. Vielen Dank 🙏!
ultralytics.nn.modules.transformer.TransformerEncoderLayer
Basen: Module
Definiert eine einzelne Schicht des Transformator-Encoders.
Quellcode in ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0.0, act=nn.GELU(), normalize_before=False)
Initialisiere den TransformerEncoderLayer mit den angegebenen Parametern.
Quellcode in ultralytics/nn/modules/transformer.py
forward(src, src_mask=None, src_key_padding_mask=None, pos=None)
Forward leitet die Eingabe durch das Gebermodul weiter.
Quellcode in ultralytics/nn/modules/transformer.py
forward_post(src, src_mask=None, src_key_padding_mask=None, pos=None)
Führt einen Vorwärtspass mit Nachnormierung durch.
Quellcode in ultralytics/nn/modules/transformer.py
forward_pre(src, src_mask=None, src_key_padding_mask=None, pos=None)
Führt einen Vorwärtspass mit Vornormierung durch.
Quellcode in ultralytics/nn/modules/transformer.py
with_pos_embed(tensor, pos=None)
staticmethod
ultralytics.nn.modules.transformer.AIFI
Basen: TransformerEncoderLayer
Definiert die AIFI-Transformationsschicht.
Quellcode in ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0, act=nn.GELU(), normalize_before=False)
Initialisiere die AIFI-Instanz mit den angegebenen Parametern.
build_2d_sincos_position_embedding(w, h, embed_dim=256, temperature=10000.0)
staticmethod
Erstellt eine 2D-Sinus-Cosinus-Positionseinbettung.
Quellcode in ultralytics/nn/modules/transformer.py
forward(x)
Vorwärtspass für die AIFI-Transformatorschicht.
Quellcode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.TransformerLayer
Basen: Module
Transformatorschicht https://arxiv.org/abs/2010.11929 (LayerNorm-Schichten für bessere Leistung entfernt).
Quellcode in ultralytics/nn/modules/transformer.py
__init__(c, num_heads)
Initialisiert einen Mechanismus zur Selbstaufmerksamkeit, der lineare Transformationen und Mehrkopfaufmerksamkeit verwendet.
Quellcode in ultralytics/nn/modules/transformer.py
forward(x)
Wende einen Transformatorblock auf den Eingang x an und gib den Ausgang zurück.
ultralytics.nn.modules.transformer.TransformerBlock
Basen: Module
Vision Transformer https://arxiv.org/abs/2010.11929.
Quellcode in ultralytics/nn/modules/transformer.py
__init__(c1, c2, num_heads, num_layers)
Initialisiere ein Transformer-Modul mit Positionseinbettung und der angegebenen Anzahl von Köpfen und Schichten.
Quellcode in ultralytics/nn/modules/transformer.py
forward(x)
Forward leitet die Eingabe durch das Engpassmodul weiter.
Quellcode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLPBlock
Basen: Module
Implementiert einen einzelnen Block eines mehrschichtigen Perzeptrons.
Quellcode in ultralytics/nn/modules/transformer.py
__init__(embedding_dim, mlp_dim, act=nn.GELU)
Initialisiere den MLPBlock mit der angegebenen Einbettungsdimension, MLP-Dimension und Aktivierungsfunktion.
Quellcode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLP
Basen: Module
Implementiert ein einfaches mehrschichtiges Perzeptron (auch FFN genannt).
Quellcode in ultralytics/nn/modules/transformer.py
__init__(input_dim, hidden_dim, output_dim, num_layers)
Initialisiere die MLP mit den angegebenen Dimensionen für Eingabe, versteckte und Ausgabe sowie der Anzahl der Schichten.
Quellcode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.LayerNorm2d
Basen: Module
2D-Layer-Normalisierungsmodul, inspiriert von den Implementierungen von Detectron2 und ConvNeXt.
Ursprüngliche Implementierungen in https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py und https://github.com/facebookresearch/ConvNeXt/blob/main/models/convnext.py.
Quellcode in ultralytics/nn/modules/transformer.py
__init__(num_channels, eps=1e-06)
Initialisiere LayerNorm2d mit den angegebenen Parametern.
Quellcode in ultralytics/nn/modules/transformer.py
forward(x)
Führe einen Vorwärtspass für die 2D-Schichtnormalisierung durch.
Quellcode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MSDeformAttn
Basen: Module
Multiskaliges deformierbares Aufmerksamkeitsmodul basierend auf den Implementierungen von Deformable-DETR und PaddleDetection.
https://github.com/fundamentalvision/Deformable-DETR/blob/main/models/ops/modules/ms_deform_attn.py
Quellcode in 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)
Initialisiere MSDeformAttn mit den angegebenen Parametern.
Quellcode in ultralytics/nn/modules/transformer.py
forward(query, refer_bbox, value, value_shapes, value_mask=None)
Führe den Vorwärtspass für die multiskalige deformierbare Aufmerksamkeit durch.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
query |
Tensor
|
[bs, query_length, C] |
erforderlich |
refer_bbox |
Tensor
|
[bs, query_length, n_levels, 2], Bereich in [0, 1], oben-links (0,0), unten-rechts (1, 1), einschließlich Auffüllbereich |
erforderlich |
value |
Tensor
|
[bs, value_length, C] |
erforderlich |
value_shapes |
List
|
[n_levels, 2], [(H_0, W_0), (H_1, W_1), ..., (H_{L-1}, W_{L-1})] |
erforderlich |
value_mask |
Tensor
|
[bs, value_length], True für nicht-auffüllende Elemente, False für auffüllende Elemente |
None
|
Retouren:
Name | Typ | Beschreibung |
---|---|---|
output |
Tensor
|
[bs, Länge_{Abfrage}, C] |
Quellcode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.DeformableTransformerDecoderLayer
Basen: Module
Deformable Transformer Decoder Layer inspiriert von PaddleDetection und Deformable-DETR Implementierungen.
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
Quellcode in 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)
Initialisiere den DeformableTransformerDecoderLayer mit den angegebenen Parametern.
Quellcode in ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, padding_mask=None, attn_mask=None, query_pos=None)
Führe den Vorwärtsdurchlauf durch die gesamte Decoderschicht durch.
Quellcode in ultralytics/nn/modules/transformer.py
forward_ffn(tgt)
Führe einen Vorwärtsdurchlauf durch den Feed-Forward Network-Teil der Schicht durch.
with_pos_embed(tensor, pos)
staticmethod
ultralytics.nn.modules.transformer.DeformableTransformerDecoder
Basen: Module
Implementierung eines Deformable Transformer Decoders basierend auf PaddleDetection.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Quellcode in ultralytics/nn/modules/transformer.py
__init__(hidden_dim, decoder_layer, num_layers, eval_idx=-1)
Initialisiere den DeformableTransformerDecoder mit den angegebenen Parametern.
Quellcode in ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, bbox_head, score_head, pos_mlp, attn_mask=None, padding_mask=None)
Führe den Vorwärtsdurchlauf durch den gesamten Decoder durch.