MCPcopy Create free account
hub / github.com/OpenGVLab/HumanBench / __init__

Method __init__

PATH/core/models/backbones/vitdet.py:72–91  ·  view source on GitHub ↗
(
            self, dim, num_heads=8, qkv_bias=False, window_size=None, rel_pos_spatial=False)

Source from the content-addressed store, hash-verified

70
71class Attention(nn.Module):
72 def __init__(
73 self, dim, num_heads=8, qkv_bias=False, window_size=None, rel_pos_spatial=False):
74 super().__init__()
75 self.num_heads = num_heads
76 head_dim = dim // num_heads
77 self.scale = head_dim ** -0.5
78 self.rel_pos_spatial = rel_pos_spatial
79 self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias)
80 self.window_size = window_size
81 if COMPAT:
82 if COMPAT == 2:
83 self.rel_pos_h = nn.Parameter(torch.zeros(2 * window_size[0] - 1, head_dim))
84 self.rel_pos_w = nn.Parameter(torch.zeros(2 * window_size[1] - 1, head_dim))
85 else:
86 q_size = window_size[0]
87 kv_size = q_size
88 rel_sp_dim = 2 * q_size - 1
89 self.rel_pos_h = nn.Parameter(torch.zeros(rel_sp_dim, head_dim))
90 self.rel_pos_w = nn.Parameter(torch.zeros(rel_sp_dim, head_dim))
91 self.proj = nn.Linear(dim, dim)
92
93 def forward(self, x, H, W):
94 B, N, C = x.shape

Callers

nothing calls this directly

Calls 1

__init__Method · 0.45

Tested by

no test coverage detected