You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对PyTorch张量进行跨步重塑:将(2,8)张量转为(4,4)张量

解决方案

可以通过PyTorch的view、transpose和reshape组合操作实现,一行代码就能搞定:

import torch

x = torch.tensor([[0, 1, 2, 3, 4, 5, 6, 7],
                  [8, 9, 10, 11, 12, 13, 14, 15]])
y = x.view(2, 2, 2, 2).transpose(1, 2).reshape(4, 4)

操作拆解

  1. view(2, 2, 2, 2):把原始(2,8)的张量拆分为4维结构,维度含义为(行组, 块组, 块内行数, 块内列数)。这一步将每一行的8个元素分成2个(2,2)的小块,比如第一行的[0,1,2,3,4,5,6,7]会被拆成两个(2,2)块:[[0,1],[2,3]]和[[4,5],[6,7]]。
  2. transpose(1, 2):交换块组和块内行数两个维度,让同一行组内的小块按列方向拼接,这样第一行组的两个(2,2)块就变成了[[[0,1],[4,5]], [[2,3],[6,7]]],正好对应目标张量的前两行结构。
  3. reshape(4, 4):把4维张量扁平化回2维,得到最终的(4,4)形状。

运行后y的输出完全符合需求:

tensor([[ 0,  1,  4,  5],
        [ 2,  3,  6,  7],
        [ 8,  9, 12, 13],
        [10, 11, 14, 15]])

内容的提问来源于stack exchange,提问作者marukosan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:26:03