改变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])
我有一个形状为 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])