(self, posemb, gs_h, gs_w)
| 98 | |
| 99 | |
| 100 | def _resize_pos_embed(self, posemb, gs_h, gs_w): |
| 101 | posemb_tok, posemb_grid = ( |
| 102 | posemb[:, : self.start_index], |
| 103 | posemb[0, self.start_index :], |
| 104 | ) |
| 105 | |
| 106 | gs_old = int(math.sqrt(len(posemb_grid))) |
| 107 | |
| 108 | posemb_grid = posemb_grid.reshape(1, gs_old, gs_old, -1).permute(0, 3, 1, 2) |
| 109 | posemb_grid = F.interpolate(posemb_grid, size=(gs_h, gs_w), mode="bilinear") |
| 110 | posemb_grid = posemb_grid.permute(0, 2, 3, 1).reshape(1, gs_h * gs_w, -1) |
| 111 | |
| 112 | posemb = torch.cat([posemb_tok, posemb_grid], dim=1) |
| 113 | |
| 114 | return posemb |
| 115 | |
| 116 | |
| 117 | def forward_flex(self, x): |
nothing calls this directly
no outgoing calls
no test coverage detected