Referencia para ultralytics/nn/modules/transformer.py
Nota
Este archivo está disponible en https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/nn/modules/transformer .py. Si detectas algún problema, por favor, ayuda a solucionarlo contribuyendo con una Pull Request 🛠️. ¡Gracias 🙏!
ultralytics.nn.modules.transformer.TransformerEncoderLayer
Bases: Module
Define una sola capa del transformador codificador.
Código fuente en ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0.0, act=nn.GELU(), normalize_before=False)
Inicializa el TransformerEncoderLayer con los parámetros especificados.
Código fuente en ultralytics/nn/modules/transformer.py
forward(src, src_mask=None, src_key_padding_mask=None, pos=None)
Hacia adelante propaga la entrada a través del módulo codificador.
Código fuente en ultralytics/nn/modules/transformer.py
forward_post(src, src_mask=None, src_key_padding_mask=None, pos=None)
Realiza el pase hacia delante con post-normalización.
Código fuente en ultralytics/nn/modules/transformer.py
forward_pre(src, src_mask=None, src_key_padding_mask=None, pos=None)
Realiza un pase hacia delante con normalización previa.
Código fuente en ultralytics/nn/modules/transformer.py
with_pos_embed(tensor, pos=None)
staticmethod
ultralytics.nn.modules.transformer.AIFI
Bases: TransformerEncoderLayer
Define la capa del transformador AIFI.
Código fuente en ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0, act=nn.GELU(), normalize_before=False)
Inicializa la instancia AIFI con los parámetros especificados.
build_2d_sincos_position_embedding(w, h, embed_dim=256, temperature=10000.0)
staticmethod
Construye una incrustación de posición 2D seno-coseno.
Código fuente en ultralytics/nn/modules/transformer.py
forward(x)
Paso hacia delante de la capa del transformador AIFI.
Código fuente en ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.TransformerLayer
Bases: Module
Capa del transformador https://arxiv.org/abs/2010.11929 (capas LayerNorm eliminadas para mejorar el rendimiento).
Código fuente en ultralytics/nn/modules/transformer.py
__init__(c, num_heads)
Inicializa un mecanismo de autoatención utilizando transformaciones lineales y atención multicabeza.
Código fuente en ultralytics/nn/modules/transformer.py
forward(x)
Aplica un bloque transformador a la entrada x y devuelve la salida.
ultralytics.nn.modules.transformer.TransformerBlock
Bases: Module
Transformador Visión https://arxiv.org/abs/2010.11929.
Código fuente en ultralytics/nn/modules/transformer.py
__init__(c1, c2, num_heads, num_layers)
Inicializa un módulo Transformador con incrustación de posición y número especificado de cabezales y capas.
Código fuente en ultralytics/nn/modules/transformer.py
forward(x)
El avance propaga la entrada a través del módulo cuello de botella.
Código fuente en ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLPBlock
Bases: Module
Implementa un único bloque de un perceptrón multicapa.
Código fuente en ultralytics/nn/modules/transformer.py
__init__(embedding_dim, mlp_dim, act=nn.GELU)
Inicializa el MLPBlock con la dimensión de incrustación, la dimensión MLP y la función de activación especificadas.
Código fuente en ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLP
Bases: Module
Implementa un perceptrón multicapa simple (también llamado FFN).
Código fuente en ultralytics/nn/modules/transformer.py
__init__(input_dim, hidden_dim, output_dim, num_layers)
Inicializa el MLP con las dimensiones de entrada, oculta y salida y el número de capas especificados.
Código fuente en ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.LayerNorm2d
Bases: Module
Módulo de Normalización de Capas 2D inspirado en las implementaciones de Detectron2 y ConvNeXt.
Implementaciones originales en https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py y https://github.com/facebookresearch/ConvNeXt/blob/main/models/convnext.py.
Código fuente en ultralytics/nn/modules/transformer.py
__init__(num_channels, eps=1e-06)
Inicializa LayerNorm2d con los parámetros dados.
Código fuente en ultralytics/nn/modules/transformer.py
forward(x)
Realiza el pase hacia delante para la normalización de capas 2D.
Código fuente en ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MSDeformAttn
Bases: Module
Módulo de Atención Deformable Multiescala basado en las implementaciones Deformable-DETR y PaddleDetection.
https://github.com/fundamentalvision/Deformable-DETR/blob/main/models/ops/modules/ms_deform_attn.py
Código fuente en 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)
Inicializa MSDeformAttn con los parámetros dados.
Código fuente en ultralytics/nn/modules/transformer.py
forward(query, refer_bbox, value, value_shapes, value_mask=None)
Realiza el pase hacia delante para la atención deformable multiescala.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Parámetros:
Nombre | Tipo | Descripción | Por defecto |
---|---|---|---|
query |
Tensor
|
[bs, longitud_consulta, C] |
necesario |
refer_bbox |
Tensor
|
[bs, longitud_consulta, n_niveles, 2], rango en [0, 1], arriba-izquierda (0,0) abajo-derecha (1, 1), incluida la zona de relleno |
necesario |
value |
Tensor
|
[bs, valor_longitud, C] |
necesario |
value_shapes |
List
|
[n_niveles, 2], [(H_0, W_0), (H_1, W_1), ..., (H_{L-1}, W_{L-1})]. |
necesario |
value_mask |
Tensor
|
[bs, longitud_valor], Verdadero para elementos sin relleno, Falso para elementos con relleno |
None
|
Devuelve:
Nombre | Tipo | Descripción |
---|---|---|
output |
Tensor
|
[bs, Longitud_{consulta}, C] |
Código fuente en ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.DeformableTransformerDecoderLayer
Bases: Module
Capa Decodificadora de Transformador Deformable inspirada en las implementaciones PaddleDetection y 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
Código fuente en 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)
Inicializa el DeformableTransformerDecoderLayer con los parámetros dados.
Código fuente en ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, padding_mask=None, attn_mask=None, query_pos=None)
Realiza la pasada hacia delante por toda la capa del descodificador.
Código fuente en ultralytics/nn/modules/transformer.py
forward_ffn(tgt)
Realiza el paso hacia delante a través de la parte de la red de alimentación hacia delante de la capa.
with_pos_embed(tensor, pos)
staticmethod
Añade incrustaciones posicionales a la entrada tensor, si se proporciona.
ultralytics.nn.modules.transformer.DeformableTransformerDecoder
Bases: Module
Implementación del Decodificador de Transformadores Deformables basado en PaddleDetection.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Código fuente en ultralytics/nn/modules/transformer.py
__init__(hidden_dim, decoder_layer, num_layers, eval_idx=-1)
Inicializa el DeformableTransformerDecoder con los parámetros dados.
Código fuente en ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, bbox_head, score_head, pos_mlp, attn_mask=None, padding_mask=None)
Realiza la pasada hacia delante por todo el decodificador.