From 83de1b18b1fa1a1ae3bb4dc4ab026969f314468f Mon Sep 17 00:00:00 2001 From: svlandeg Date: Fri, 27 Feb 2026 01:50:37 +0100 Subject: [PATCH] call reshape instead of view in case the tensors are not contiguous --- nanochat/gpt.py | 2 +- nanochat/loss_eval.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nanochat/gpt.py b/nanochat/gpt.py index 208acd1..5487047 100644 --- a/nanochat/gpt.py +++ b/nanochat/gpt.py @@ -416,7 +416,7 @@ class GPT(nn.Module): if targets is not None: # training: given the targets, compute and return the loss # TODO experiment with chunked cross-entropy? - loss = F.cross_entropy(logits.view(-1, logits.size(-1)), targets.view(-1), ignore_index=-1, reduction=loss_reduction) + loss = F.cross_entropy(logits.reshape(-1, logits.size(-1)), targets.reshape(-1), ignore_index=-1, reduction=loss_reduction) return loss else: # inference: just return the logits directly diff --git a/nanochat/loss_eval.py b/nanochat/loss_eval.py index 5a556e6..6f59b11 100644 --- a/nanochat/loss_eval.py +++ b/nanochat/loss_eval.py @@ -32,7 +32,7 @@ def evaluate_bpb(model, batches, steps, token_bytes): x, y = next(batch_iter) loss2d = model(x, y, loss_reduction='none') # (B, T) loss2d = loss2d.view(-1) # flatten - y = y.view(-1) # flatten + y = y.reshape(-1) # flatten if (y.int() < 0).any(): # mps does not currently have kernel for < 0 for int64, only int32 # slightly more complex code path if some target tokens are ignore_index (e.g. -1) # any target token < 0 is to be ignored: do NOT index token_bytes with negatives