Referentie voor ultralytics/nn/modules/transformer.py
Opmerking
Dit bestand is beschikbaar op https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/nn/modules/transformer .py. Als je een probleem ziet, help het dan oplossen door een Pull Request 🛠️ bij te dragen. Bedankt 🙏!
ultralytics.nn.modules.transformer.TransformerEncoderLayer
Basis: Module
Definieert een enkele laag van de transformator-encoder.
Broncode in ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0.0, act=nn.GELU(), normalize_before=False)
Initialiseer de TransformerEncoderLayer met opgegeven parameters.
Broncode in ultralytics/nn/modules/transformer.py
forward(src, src_mask=None, src_key_padding_mask=None, pos=None)
Forward propageert de invoer door de encodermodule.
Broncode in ultralytics/nn/modules/transformer.py
forward_post(src, src_mask=None, src_key_padding_mask=None, pos=None)
Voert forward pass uit met post-normalisatie.
Broncode in ultralytics/nn/modules/transformer.py
forward_pre(src, src_mask=None, src_key_padding_mask=None, pos=None)
Voert voorwaartse pass met pre-normalisatie uit.
Broncode in ultralytics/nn/modules/transformer.py
with_pos_embed(tensor, pos=None)
staticmethod
ultralytics.nn.modules.transformer.AIFI
Basis: TransformerEncoderLayer
Definieert de transformatorlaag van AIFI.
Broncode in ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0, act=nn.GELU(), normalize_before=False)
Initialiseer de AIFI instantie met gespecificeerde parameters.
build_2d_sincos_position_embedding(w, h, embed_dim=256, temperature=10000.0)
staticmethod
Bouwt 2D sinus-cosinus positie inbedding.
Broncode in ultralytics/nn/modules/transformer.py
forward(x)
Voorwaartse doorgang voor de AIFI transformatorlaag.
Broncode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.TransformerLayer
Basis: Module
Transformatorlaag https://arxiv.org/abs/2010.11929 (LayerNorm lagen verwijderd voor betere prestaties).
Broncode in ultralytics/nn/modules/transformer.py
__init__(c, num_heads)
Initialiseert een zelfattentiemechanisme met lineaire transformaties en aandacht voor meerdere hoofden.
Broncode in ultralytics/nn/modules/transformer.py
forward(x)
Pas een transformatorblok toe op de ingang x en retourneer de uitgang.
ultralytics.nn.modules.transformer.TransformerBlock
Basis: Module
Vision Transformer https://arxiv.org/abs/2010.11929.
Broncode in ultralytics/nn/modules/transformer.py
__init__(c1, c2, num_heads, num_layers)
Een transformatormodule initialiseren met positie-inbedding en een opgegeven aantal koppen en lagen.
Broncode in ultralytics/nn/modules/transformer.py
forward(x)
Forward propageert de invoer door de bottleneck module.
Broncode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLPBlock
Basis: Module
Implementeert een enkel blok van een meerlaags perceptron.
Broncode in ultralytics/nn/modules/transformer.py
__init__(embedding_dim, mlp_dim, act=nn.GELU)
Initialiseer het MLPBlock met de opgegeven insluitingsdimensie, MLP-dimensie en activeringsfunctie.
Broncode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLP
Basis: Module
Implementeert een eenvoudige meerlaagse perceptron (ook FFN genoemd).
Broncode in ultralytics/nn/modules/transformer.py
__init__(input_dim, hidden_dim, output_dim, num_layers)
Initialiseer de MLP met opgegeven invoer, verborgen en uitvoerafmetingen en aantal lagen.
Broncode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.LayerNorm2d
Basis: Module
2D Layer Normalization module geïnspireerd door Detectron2 en ConvNeXt implementaties.
Originele implementaties in https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py en https://github.com/facebookresearch/ConvNeXt/blob/main/models/convnext.py.
Broncode in ultralytics/nn/modules/transformer.py
__init__(num_channels, eps=1e-06)
Initialiseer LayerNorm2d met de gegeven parameters.
Broncode in ultralytics/nn/modules/transformer.py
forward(x)
Voorwaartse beweging uitvoeren voor 2D laagnormalisatie.
Broncode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MSDeformAttn
Basis: Module
Multischaal Deformable Attention Module gebaseerd op Deformable-DETR en PaddleDetection implementaties.
https://github.com/fundamentalvision/Deformable-DETR/blob/main/models/ops/modules/ms_deform_attn.py
Broncode 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)
Initialiseer MSDeformAttn met de gegeven parameters.
Broncode in ultralytics/nn/modules/transformer.py
forward(query, refer_bbox, value, value_shapes, value_mask=None)
Voorwaartse pas uitvoeren voor multischaal vervormbare aandacht.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
query |
Tensor
|
[bs, query_length, C]. |
vereist |
refer_bbox |
Tensor
|
[bs, query_length, n_levels, 2], bereik in [0, 1], linksboven (0,0), rechtsonder (1, 1), inclusief opvulgebied |
vereist |
value |
Tensor
|
[bs, waarde_lengte, C] |
vereist |
value_shapes |
List
|
[n_levels, 2], [(H_0, W_0), (H_1, W_1), ..., (H_{L-1}, W_{L-1})] |
vereist |
value_mask |
Tensor
|
[bs, value_length], True voor elementen zonder opvulling, False voor elementen met opvulling |
None
|
Retourneert:
Naam | Type | Beschrijving |
---|---|---|
output |
Tensor
|
[bs, Lengte_{vraag}, C]. |
Broncode in ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.DeformableTransformerDecoderLayer
Basis: Module
Deformable Transformer Decoder Layer geïnspireerd op PaddleDetection en Deformable-DETR implementaties.
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
Broncode 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)
Initialiseer de DeformableTransformerDecoderLayer met de gegeven parameters.
Broncode in ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, padding_mask=None, attn_mask=None, query_pos=None)
Voer de voorwaartse passage door de hele decoderlaag uit.
Broncode in ultralytics/nn/modules/transformer.py
forward_ffn(tgt)
Voer een voorwaartse passage uit door het Feed-Forward Netwerk deel van de laag.
with_pos_embed(tensor, pos)
staticmethod
ultralytics.nn.modules.transformer.DeformableTransformerDecoder
Basis: Module
Implementatie van vervormbare transformatordecoder gebaseerd op PaddleDetection.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Broncode in ultralytics/nn/modules/transformer.py
__init__(hidden_dim, decoder_layer, num_layers, eval_idx=-1)
Initialiseer de DeformableTransformerDecoder met de gegeven parameters.
Broncode in ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, bbox_head, score_head, pos_mlp, attn_mask=None, padding_mask=None)
Voer de voorwaartse passage door de hele decoder uit.