改变pytorch张量的形状

Change shape of pytorch tensor

我有一个形状为 torch.size([6000, 30, 30, 9]) 的 pytorch 张量,我想将其转换为形状: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])