pytorch中两个特征图的点积

问题描述

我有两个 CNN 分割模型(1D 和 2D 模型),它们有大约 10 个卷积层。两个模型的输入大小分别为[1,64](1D)和[1,128,128](2D)。现在有元数据可以帮助我的模型更好地工作,其大小为 [31,64] (1D) 和 [31,128] (2D)。我想在第 5 个 Conv 层之后将此元数据融合到 CNN 模型中。我使用的批量大小为 16。现在在特征图的第 5 个转换层大小之后是 [16,256,64] (1D) 和 [16,128] (2D)。我有两种方法可以将此元数据融合到 CNN 模型中。

首先:我将我的特征图与元数据连接起来,得到一个融合了 [16,287,64][16,128] 的特征图。这工作得很好

第二:我想利用特征图和元数据之间的点积。但是一维的 [16,31,64] 和二维的 [16,128][16,128] 的大小与点积不兼容。现在即使我将特征图与另一个Conv层一起传递,并将新的特征图制作为与元数据大小相似的[16,64][16,128],它仍然不兼容。

那么有人可以帮助我了解如何通过点积完成这种融合吗?

featuremap1d = torch.randn(16,64).type(torch.float32)
Metadata1d = torch.randint(0,2,(16,64)).type(torch.float32)

featuremap2d = torch.randn(16,128).type(torch.float32)
Metadata2d = torch.randint(0,128)).type(torch.float32)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...