MCPcopy Create free account
hub / github.com/ZhengPeng7/BiRefNet / OverlapPatchEmbed

Class OverlapPatchEmbed

models/modules/mlp.py:95–117  ·  view source on GitHub ↗

Image to Patch Embedding

Source from the content-addressed store, hash-verified

93
94
95class OverlapPatchEmbed(nn.Module):
96 """ Image to Patch Embedding
97 """
98
99 def __init__(self, img_size=224, patch_size=7, stride=4, in_channels=3, embed_dim=768):
100 super().__init__()
101 img_size = to_2tuple(img_size)
102 patch_size = to_2tuple(patch_size)
103
104 self.img_size = img_size
105 self.patch_size = patch_size
106 self.H, self.W = img_size[0] // patch_size[0], img_size[1] // patch_size[1]
107 self.num_patches = self.H * self.W
108 self.proj = nn.Conv2d(in_channels, embed_dim, kernel_size=patch_size, stride=stride,
109 padding=(patch_size[0] // 2, patch_size[1] // 2))
110 self.norm = nn.LayerNorm(embed_dim)
111
112 def forward(self, x):
113 x = self.proj(x)
114 _, _, H, W = x.shape
115 x = x.flatten(2).transpose(1, 2)
116 x = self.norm(x)
117 return x, H, W
118

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected