| 27 | |
| 28 | class PatchEmbed(torch.nn.Module): |
| 29 | def __init__(self, patch_size=2, in_channels=16, embed_dim=1536, pos_embed_max_size=192): |
| 30 | super().__init__() |
| 31 | self.pos_embed_max_size = pos_embed_max_size |
| 32 | self.patch_size = patch_size |
| 33 | |
| 34 | self.proj = torch.nn.Conv2d(in_channels, embed_dim, kernel_size=(patch_size, patch_size), stride=patch_size) |
| 35 | self.pos_embed = torch.nn.Parameter(torch.zeros(1, self.pos_embed_max_size, self.pos_embed_max_size, embed_dim)) |
| 36 | |
| 37 | def cropped_pos_embed(self, height, width): |
| 38 | height = height // self.patch_size |