【发布时间】:2022-01-16 13:49:27
【问题描述】:
我有一个 pytorch 张量,其形状为:torch.size([6000, 30, 30, 9]),我想将其转换为形状:torch.size([6000, 8100]),这样我就可以从包含 30 个元素的 6000 个元素开始,这些元素又包含 30 个元素,而这些元素又包含 9元素
6000 个元素包含 8100 个元素。如何实现?
【问题讨论】:
我有一个 pytorch 张量,其形状为:torch.size([6000, 30, 30, 9]),我想将其转换为形状:torch.size([6000, 8100]),这样我就可以从包含 30 个元素的 6000 个元素开始,这些元素又包含 30 个元素,而这些元素又包含 9元素
6000 个元素包含 8100 个元素。如何实现?
【问题讨论】:
假设您有一个形状为 torch.size([6000, 30, 30, 9]) 的张量 x。在 Pytorch 中,要将其形状更改为 torch.size([6000, 8100]),可以使用函数 view 或 reshape 保持张量的第一个维度(6000)并展平其余维度(30,30 ,9) 如下:
import torch
x= torch.rand(6000, 30, 30, 9)
print(x.shape) #torch.Size([6000, 30, 30, 9])
x=x.view(6000,-1) # or x= x.view(x.size(0),-1)
print(x.shape) #torch.Size([6000, 8100])
x= torch.rand(6000, 30, 30, 9)
print(x.shape) #torch.Size([6000, 30, 30, 9])
x=x.reshape(6000,-1) # or x= x.reshape(x.size(0),-1)
print(x.shape) #torch.Size([6000, 8100])
【讨论】: