挤压后的pytorch .stack最终形状

我有一个熊猫数据框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、100x25x1的块


所以我


stacked = torch.stack(list, 1).squeeze(2)

stacked.size()=([25,100])

我已经尝试过堆叠和压缩,但是我似乎无法回到我想要的([2500,1])。我想念什么吗?如果您能迅速帮助我了解堆叠和压缩的功能以及为什么它对我不起作用,那么您将永远背负债务!谢谢


慕桂英3389331
浏览 150回答 1
1回答

GCT1015

重命名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])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python