参考 ultralytics/nn/modules/transformer.py
注
このファイルはhttps://github.com/ultralytics/ultralytics/blob/main/ ultralytics/nn/modules/transformer .py にあります。もし問題を発見したら、Pull Request🛠️ を投稿して修正にご協力ください。ありがとうございます🙏!
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
ultralytics.nn.modules.transformer.AIFI
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
2次元のサイン・コサイン位置埋め込みを構築する。
ソースコード 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
ultralytics.nn.modules.transformer.TransformerBlock
ベース: Module
ヴィジョン・トランスフォーマー https://arxiv.org/abs/2010.11929.
ソースコード ultralytics/nn/modules/transformer.py
__init__(c1, c2, num_heads, num_layers)
位置埋め込みと指定されたヘッド数とレイヤー数を持つTransformerモジュールを初期化する。
ソースコード 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)
指定された埋め込み次元、MLP 次元、活性化関数で MLPBlock を初期化します。
ソースコード 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の実装にインスパイアされた2Dレイヤー正規化モジュール。
のオリジナル実装 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
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)
与えられたパラメータで 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
|
[bs、query_length、C]。 |
必須 |
refer_bbox |
Tensor
|
[bs, query_length, n_levels, 2], 範囲 [0, 1], 左上 (0,0)、 右下 (1, 1)、パディング領域を含む |
必須 |
value |
Tensor
|
[bs、value_length、C]。 |
必須 |
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_{query}, 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)
レイヤーのフィード・フォワード・ネットワークの部分をフォワード・パスする。
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)
デコーダー全体を順方向に通過させる。