gpt4 book ai didi

pytorch - 在pytorch中连接两个不同形状的 torch 张量

转载 作者:行者123 更新时间:2023-12-02 16:40:44 26 4
gpt4 key购买 nike

我有两个 torch 张量。一个形状为 [64, 4, 300],一个形状为 [64, 300]。我如何连接这两个张量以获得形状为 [64, 5, 300] 的合成张量。我知道用于此的 tensor.cat 函数,但为了使用该函数,我需要 reshape 第二个张量以匹配张量的维数。我听说不应该 reshape 张量,因为它可能会弄乱张量中的数据。我怎样才能做这个连接?

我尝试过 reshape ,但接下来的部分让我对这种 reshape 更加怀疑。

a = torch.rand(64,300)

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

list(a1[0]) == list(a)
Out[32]: False

最佳答案

您必须在第一个维度上使用 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 如果正确完成则不会)。

关于pytorch - 在pytorch中连接两个不同形状的 torch 张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61734347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com