我有一个熊猫数据框200列乘2500行,我把它做成张量
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,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])