我有两个张量:
a = torch.randn((1, 30, 1220)) # represents text embedding vector (30 spans, each with embedding size of 1220)
b = torch.randn((1, 128, 256)) # represents image features obtained from a pretrained CNN (object detection)
如何将
b
中的所有内容连接到a
的 30 个跨度中的每一个?如何将整个
b
连接到整个a
?
这就是我正在尝试做的事情:
作者仅提供了以下文字:
我正在从 3d 点云(类似于 CNN,但适用于 3d)中提取特征(以红色框出),如下所示:
最佳答案
您想要组合两个具有不同形状的张量,没有简单的方法可以连接它们。两个张量都保存有关同一实例的信息:您想要通过两种不同模式(文本和视觉)使用特征嵌入来表征的元素。
对我来说唯一有意义的方法是学习两个单独的层,将文本嵌入和图像特征映射到一个可以轻松融合它们的公共(public)空间。
您为此映射采用的设计完全取决于您。当然,这个映射层需要通过训练来学习,即在另一端应用某种监督。
关于python - 连接来自两种不同输入模态的两个不同形状的张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69036172/