从 reshape 到 einops:理解 Transformer 代码中的 Tensor Shape DSL
·6243 words·13 mins
起因 # 最近在做 CS336(Language Modeling from Scratch)的 Transformer 实现,代码里反复出现这种写法:
1rearrange(X, "... seq (heads d) -> ... heads seq d", heads=self.num_heads) 第一次看到时,它甚至比 x.view(...).transpose(...) 更加陌生——至少后者你知道它是 PyTorch 原生 API。