Use explicit C instead of -1 in _merge_tokens view
This commit is contained in:
parent
834bd96111
commit
ece7b2497e
1 changed files with 6 additions and 4 deletions
|
|
@ -674,11 +674,13 @@ class Qwen3VL32BVision(nn.Module):
|
|||
@staticmethod
|
||||
def _merge_tokens(x: torch.Tensor, grid_thw: torch.Tensor) -> torch.Tensor:
|
||||
"""Flatten 2x2 spatial-merge blocks (the reference's pre-merge flatten)."""
|
||||
t, h, w = (int(v) for v in grid_thw.tolist()[0])
|
||||
# grid_thw is a 2D long tensor [[t, h, w], ...]; take the first image.
|
||||
first = grid_thw[0]
|
||||
t = int(first[0].item())
|
||||
h = int(first[1].item())
|
||||
w = int(first[2].item())
|
||||
merge = 2
|
||||
if x.ndim != 2 or x.shape[0] != t * h * w:
|
||||
print(f"[merge_tokens] x.shape={tuple(x.shape)}, grid={(t, h, w)}, expected N={t*h*w}")
|
||||
return x.view(t, h // merge, merge, w // merge, merge, -1).permute(0, 1, 3, 2, 4, 5).reshape(-1, -1)
|
||||
return x.view((t, h // merge, merge, w // merge, merge, x.shape[-1])).permute(0, 1, 3, 2, 4, 5).reshape(-1, -1)
|
||||
|
||||
def forward(self, flatten_patches: torch.Tensor, grid_thw: torch.Tensor) -> tuple[torch.Tensor, list[torch.Tensor]]:
|
||||
"""Run the visual tower -> (merged, deepstack)."""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue