我有一个包含200列和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(chunk) output.size() => ([25,1]) list += output
这些分块经过一些层处理后输出为特征为1的张量。因此,现在我有100个张量的列表,每个张量包含25个块,每个块为1,即100x25x1
然后我
stacked = torch.stack(list, 1).squeeze(2)stacked.size()=([25,100])
我尝试了不同的堆叠和压缩方法,但似乎无法得到我想要的形状([2500,1])。我是不是遗漏了什么?如果您能快速帮助我理解堆叠和压缩的作用,以及为什么对我不起作用,我将不胜感激!谢谢
回答:
将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])