如何在大小不一致时扩展一个张量

a =  tensor([   [101,  103],        [101,  1045]    ])b =  tensor([   [101,  777, 227],        [101,  888, 228]    ])

如何从a和b得到这个张量c:

c = a + b =  tensor([   [101,  103, 0],        [101,  1045, 0],        [101,  777, 227],        [101,  888, 228]            ])

我尝试使用c = torch.cat((a, b), dim=0)但不起作用。


回答:

一般来说,你可以尝试将第一个张量填充到与另一个张量相同的大小。对于这个问题,你可以按以下方式操作:

import torchimport torch.nn.functional as Fa = torch.tensor([    [101,  103],    [101,  1045]])b = torch.tensor([    [101,  777, 227],    [101,  888, 228]])a = F.pad(a, pad=(0, b.size()[1] - a.size()[1], 0, b.size()[0] - a.size()[0]), value=0)print(a)

这将用零扩展a张量的第一和第二维度,以匹配b张量。

然后你可以将它们连接起来:

c = torch.cat((a, b), dim=0)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注