Tài liệu tham khảo cho ultralytics/nn/modules/transformer.py
Ghi
Tệp này có sẵn tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/nn/mô-đun/transformer.py. Nếu bạn phát hiện ra một vấn đề, vui lòng giúp khắc phục nó bằng cách đóng góp Yêu cầu 🛠️ kéo. Cảm ơn bạn 🙏 !
ultralytics.nn.modules.transformer.TransformerEncoderLayer
Căn cứ: Module
Xác định một lớp duy nhất của bộ mã hóa máy biến áp.
Mã nguồn trong ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0.0, act=nn.GELU(), normalize_before=False)
Khởi tạo TransformerEncoderLayer với các tham số được chỉ định.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward(src, src_mask=None, src_key_padding_mask=None, pos=None)
Chuyển tiếp truyền đầu vào thông qua mô-đun mã hóa.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward_post(src, src_mask=None, src_key_padding_mask=None, pos=None)
Thực hiện chuyền về phía trước với hậu bình thường hóa.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward_pre(src, src_mask=None, src_key_padding_mask=None, pos=None)
Thực hiện chuyền về phía trước với chuẩn hóa trước.
Mã nguồn trong ultralytics/nn/modules/transformer.py
with_pos_embed(tensor, pos=None)
staticmethod
ultralytics.nn.modules.transformer.AIFI
Căn cứ: TransformerEncoderLayer
Xác định lớp biến áp AIFI.
Mã nguồn trong ultralytics/nn/modules/transformer.py
__init__(c1, cm=2048, num_heads=8, dropout=0, act=nn.GELU(), normalize_before=False)
Khởi tạo phiên bản AIFI với các tham số được chỉ định.
build_2d_sincos_position_embedding(w, h, embed_dim=256, temperature=10000.0)
staticmethod
Xây dựng nhúng vị trí sine-cosin 2D.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward(x)
Chuyển tiếp vượt qua cho lớp biến áp AIFI.
Mã nguồn trong ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.TransformerLayer
Căn cứ: Module
Lớp biến áp https://arxiv.org/abs/2010.11929 (các lớp LayerNorm bị loại bỏ để có hiệu suất tốt hơn).
Mã nguồn trong ultralytics/nn/modules/transformer.py
__init__(c, num_heads)
Khởi tạo một cơ chế tự chú ý bằng cách sử dụng các phép biến đổi tuyến tính và sự chú ý nhiều đầu.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward(x)
Áp dụng một khối biến áp cho đầu vào x và trả về đầu ra.
ultralytics.nn.modules.transformer.TransformerBlock
Căn cứ: Module
Máy biến áp tầm nhìn https://arxiv.org/abs/2010.11929.
Mã nguồn trong ultralytics/nn/modules/transformer.py
__init__(c1, c2, num_heads, num_layers)
Khởi tạo mô-đun Biến áp với nhúng vị trí và số lượng đầu và lớp được chỉ định.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward(x)
Chuyển tiếp truyền đầu vào thông qua mô-đun nút cổ chai.
Mã nguồn trong ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLPBlock
Căn cứ: Module
Thực hiện một khối duy nhất của perceptron nhiều lớp.
Mã nguồn trong ultralytics/nn/modules/transformer.py
__init__(embedding_dim, mlp_dim, act=nn.GELU)
Khởi tạo MLPBlock với kích thước nhúng được chỉ định, kích thước MLP và chức năng kích hoạt.
Mã nguồn trong ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MLP
Căn cứ: Module
Thực hiện một perceptron nhiều lớp đơn giản (còn được gọi là FFN).
Mã nguồn trong ultralytics/nn/modules/transformer.py
__init__(input_dim, hidden_dim, output_dim, num_layers)
Khởi tạo MLP với đầu vào được chỉ định, ẩn, kích thước đầu ra và số lượng lớp.
Mã nguồn trong ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.LayerNorm2d
Căn cứ: Module
Mô-đun chuẩn hóa lớp 2D lấy cảm hứng từ việc triển khai Detectron2 và ConvNeXt.
Triển khai ban đầu trong https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py và https://github.com/facebookresearch/ConvNeXt/blob/main/models/convnext.py.
Mã nguồn trong ultralytics/nn/modules/transformer.py
__init__(num_channels, eps=1e-06)
Khởi tạo LayerNorm2d với các tham số đã cho.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward(x)
Thực hiện chuyển tiếp để chuẩn hóa lớp 2D.
Mã nguồn trong ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.MSDeformAttn
Căn cứ: Module
Mô-đun chú ý biến dạng đa cấp dựa trên triển khai Deformable-DETR và PaddleDetection.
https://github.com/fundamentalvision/Deformable-DETR/blob/main/models/ops/modules/ms_deform_attn.py
Mã nguồn trong ultralytics/nn/modules/transformer.py
__init__(d_model=256, n_levels=4, n_heads=8, n_points=4)
Khởi tạo MSDeformAttn với các tham số đã cho.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward(query, refer_bbox, value, value_shapes, value_mask=None)
Thực hiện chuyền về phía trước cho sự chú ý biến dạng đa cấp.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
query |
Tensor
|
[BS, query_length, C] |
bắt buộc |
refer_bbox |
Tensor
|
[bs, query_length, n_levels, 2], phạm vi trong [0, 1], trên cùng bên trái (0,0), dưới cùng bên phải (1, 1), bao gồm cả khu vực đệm |
bắt buộc |
value |
Tensor
|
[BS, value_length, C] |
bắt buộc |
value_shapes |
List
|
[n_levels, 2], [(H_0, W_0), (H_1, W_1), ..., (H_{L-1}, W_{L-1})] |
bắt buộc |
value_mask |
Tensor
|
[bs, value_length], Đúng cho các phần tử không đệm, Sai cho các phần tử đệm |
None
|
Trở lại:
Tên | Kiểu | Sự miêu tả |
---|---|---|
output |
Tensor
|
[bs, Length_{truy vấn}, C] |
Mã nguồn trong ultralytics/nn/modules/transformer.py
ultralytics.nn.modules.transformer.DeformableTransformerDecoderLayer
Căn cứ: Module
Lớp giải mã biến áp biến dạng lấy cảm hứng từ việc triển khai PaddleDetection và 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
Mã nguồn trong 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)
Khởi tạo DeformableTransformerDecoderLayer với các tham số đã cho.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, padding_mask=None, attn_mask=None, query_pos=None)
Thực hiện chuyển tiếp qua toàn bộ lớp bộ giải mã.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward_ffn(tgt)
Thực hiện forward pass qua phần Feed-Forward Network của layer.
with_pos_embed(tensor, pos)
staticmethod
ultralytics.nn.modules.transformer.DeformableTransformerDecoder
Căn cứ: Module
Triển khai Bộ giải mã biến áp biến dạng dựa trên PaddleDetection.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/transformers/deformable_transformer.py
Mã nguồn trong ultralytics/nn/modules/transformer.py
__init__(hidden_dim, decoder_layer, num_layers, eval_idx=-1)
Khởi tạo DeformableTransformerDecoder với các tham số đã cho.
Mã nguồn trong ultralytics/nn/modules/transformer.py
forward(embed, refer_bbox, feats, shapes, bbox_head, score_head, pos_mlp, attn_mask=None, padding_mask=None)
Thực hiện chuyển tiếp qua toàn bộ bộ giải mã.