如何将形状为torch.Size([1, 16384, 3])的torch tensor调整为[1, 128, 128, 3]形状
PyTorch Tensor 形状转换方案
你要转换的两个形状元素总数完全匹配(1×16384×3 = 1×128×128×3 = 49152),直接用PyTorch内置的reshape方法即可实现。
基础实现代码
import torch # 你的原始tensor,这里用随机数模拟 raw_tensor = torch.randn(1, 16384, 3) # 执行reshape操作 target_tensor = raw_tensor.reshape(1, 128, 128, 3) # 验证输出形状 print(target_tensor.shape) # 输出结果:torch.Size([1, 128, 128, 3])
其他可选方案与注意事项
- 如果你的原始tensor是连续存储的,也可以用
view()方法实现相同效果,写法为target_tensor = raw_tensor.view(1, 128, 128, 3),运行效率和reshape一致。 - 不需要手动计算维度的情况下,可以用
-1让PyTorch自动推导维度,比如以下几种写法都能得到相同的结果:raw_tensor.reshape(1, -1, 128, 3)raw_tensor.reshape(1, 128, 128, -1)
- 两种方法都不会改变原始tensor的数据存储顺序,如果你需要调整通道/维度顺序,需要额外搭配
permute()方法使用。
内容的提问来源于stack exchange,提问作者Jun Lee
相关产品推荐
相关产品推荐

