pytorch .stack 后的最终形状 .squeeze

问题描述 投票:0回答:1

我有一个 200 列 x 2500 行的 pandas 数据框,我将其转换为张量

tensor = torch.tensor(df.values)
tensor.size() => ([2500,200])

我将其分块并列举了

list=[]
for i,chunk in enumerate(tensor.chunk(100,dim=0))
    chunk.size =>([25,200])
    output = hiddenlayer(chunks)
    output.size() => ([25,1])
    list += output

块被输入到一些层并作为 1 个特征张量输出。所以现在我有一个 100 个张量的列表,每个张量有 25 个 1 块,100x25x1

所以我

stacked = torch.stack(list, 1).squeeze(2)
stacked.size()=([25,100])

我已经尝试过堆叠和挤压,但我似乎无法回到我想要的 ([2500,1]) 。我错过了什么吗?如果您能快速帮助我了解堆叠和挤压的作用以及为什么它对我不起作用,我将永远感激您!谢谢

python machine-learning pytorch tensor
1个回答
0
投票

list
重命名为
tensor_list
,因为使用保留关键字作为变量名是不好的做法。

tensor_list =[]
for i,chunk in enumerate(tensor.chunk(100,dim=0)):
    output = hiddenlayer(chunk).squeeze()
    tensor_list.append(output)

result = torch.reshape(torch.stack(tensor_list,0), (-1, 1))

result.size() 现在应该返回

torch.Size([2500, 1])

© www.soinside.com 2019 - 2024. All rights reserved.