rohitg00/ai-engineering-from-scratch · error · ValueError
table must be (L, D)
Error message
table must be (L, D)
What it means
Error "table must be (L, D)" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at phases/19-capstone-projects/32-token-positional-embeddings/code/main.py:175
if ids.dim() != 2:
raise ValueError(f"ids must be (B, T), got shape {tuple(ids.shape)}")
seq_len = ids.shape[1]
tok = self.token_embedding(ids)
pos = self.positional_embedding(seq_len)
return tok + pos.unsqueeze(0)
def count_parameters(module: nn.Module) -> int:
return sum(p.numel() for p in module.parameters() if p.requires_grad)
def neighbour_cosine_curve(table: torch.Tensor, max_offset: int = 8) -> list[float]:
"""Average cosine similarity between row p and row p+k for k in 1..max_offset.
Returns a list of length max_offset.
"""
if table.dim() != 2:
raise ValueError("table must be (L, D)")
if max_offset < 1:
raise ValueError(f"max_offset must be >= 1, got {max_offset}")
if max_offset >= table.shape[0]:
raise ValueError(
f"max_offset {max_offset} must be < number of rows {table.shape[0]}"
)
rows = table.detach().to(torch.float32)
norms = rows.norm(dim=1, keepdim=True).clamp(min=1e-8)
unit = rows / norms
result: list[float] = []
for k in range(1, max_offset + 1):
a = unit[:-k]
b = unit[k:]
dot = (a * b).sum(dim=1).mean().item()
result.append(dot)
return result
View on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at phases/19-capstone-projects/32-token-positional-embeddings/code/main.py:175 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26).
Data as JSON: /api/errors/a702e664e4a1e2fe.
Report an issue: GitHub.