{"record":{"id":"2bea1e05f5ff9c29","repo":"rohitg00/ai-engineering-from-scratch","slug":"shape-mismatch-image-tuple-image-emb-shape-vs-t","errorCode":null,"errorMessage":"shape mismatch image {tuple(image_emb.shape)} vs text {tuple(text_emb.shape)}","messagePattern":"shape mismatch image (.+?) vs text (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"phases/19-capstone-projects/60-projection-layer-modality-align/code/main.py","lineNumber":115,"sourceCode":"\ndef make_pair(seed: int, vocab_size: int, max_len: int) -> tuple[torch.Tensor, torch.Tensor]:\n    \"\"\"One synthetic (image, caption_ids) pair.\n\n    Image is the deterministic 224x224x3 fixture from lesson 58 with a per-pair\n    seed. Caption is a length-`max_len` sequence of token ids, again\n    deterministic in seed. Token id 0 is reserved as padding.\n    \"\"\"\n    img = synthesize_image(seed=seed)\n    rng = np.random.default_rng(seed + 10_000)\n    length = int(rng.integers(4, max_len + 1))\n    ids = np.zeros((max_len,), dtype=np.int64)\n    ids[:length] = rng.integers(1, vocab_size, size=length)\n    return img, torch.from_numpy(ids).unsqueeze(0)\n\n\ndef cosine_alignment_loss(image_emb: torch.Tensor, text_emb: torch.Tensor) -> torch.Tensor:\n    if image_emb.shape != text_emb.shape:\n        raise ValueError(\n            f\"shape mismatch image {tuple(image_emb.shape)} vs text {tuple(text_emb.shape)}\"\n        )\n    img_n = F.normalize(image_emb, dim=-1)\n    txt_n = F.normalize(text_emb, dim=-1)\n    cos = (img_n * txt_n).sum(dim=-1)\n    return (1.0 - cos).mean()\n\n\ndef freeze(module: nn.Module) -> None:\n    for p in module.parameters():\n        p.requires_grad_(False)\n\n\n@dataclass\nclass TrainStats:\n    initial_loss: float\n    final_loss: float\n    final_cos: float","sourceCodeStart":97,"sourceCodeEnd":133,"githubUrl":"https://github.com/rohitg00/ai-engineering-from-scratch/blob/39ea8a1c6d0b61f071226eff7ede4d4105fed820/phases/19-capstone-projects/60-projection-layer-modality-align/code/main.py#L97-L133","documentation":"Error \"shape mismatch image {tuple(image_emb.shape)} vs text {tuple(text_emb.shape)}\" thrown in rohitg00/ai-engineering-from-scratch.","triggerScenarios":"Thrown at phases/19-capstone-projects/60-projection-layer-modality-align/code/main.py:115 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"39ea8a1c6d0b61f071226eff7ede4d4105fed820","analyzedAt":"2026-08-26T03:13:46.626Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}