在pytorch中连接两个不同形状的火炬张力器。

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

我有两个电筒触须。一个是有形状的 [64, 4, 300]形状的一个 [64, 300]. 如何将这两个张量相加,得到形状的结果张量?[64, 5, 300]. 我知道 tensor.cat 函数,但为了使用该函数,我需要重塑第二个张量,以匹配张量的维数。我听说不应该对张量进行重塑,因为这可能会弄乱张量中的数据。如何进行这种连通?

我已经尝试过重塑,但下面的部分让我对这种重塑更加怀疑。

a = torch.rand(64,300)

a1 = a.reshape(64,1,300)

list(a1[0]) == list(a)
Out[32]: False
concatenation pytorch concat tensor torch
1个回答
3
投票

你必须使用 torch.cat 沿着第一维度,做 unsqueeze 在第一个也是,像这样。

import torch

first = torch.randn(64, 4, 300)
second = torch.randn(64, 300)

torch.cat((first, second.unsqueeze(dim=1)), dim=1)
# Shape: [64, 5, 300]

它不会弄乱你的数据,它只是增加了表面上的数据。1 维度 (reshape 不,如果做正确的反正)。)

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