如何解决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 举报,一经查实,本站将立刻删除。