我试图将张量 y 插入张量 x 最终维度 (y_dim)。最终张量的大小应为 (100, 16, 16, 1),其中 y 的值位于 100 x 0 维度中的每一个
import torch
y_dim = 1
x = torch.randn(100, 16, 16, y_dim)
#OR x = torch.randn(100, 16, 16)
y = torch.randn(100)
Xy = torch.cat((x, y), dim=3)
我认为您在对张量和维度的理解中遗漏了一些东西。最简单的事情是将您的张量x
视为包含100
width 和 height 地图的批次16
,即 100
16x16
-maps。所以你正在操纵一个包含100*16*16
元素的张量。你y
,在另一方面,包含100
标量值,它100
的元素。
我把问题转回给你:
您将如何将
100
16x16
-maps 与100
标量值连接起来?
上面的问题没有答案。不过,有些事情是可以做的,y
为了执行串联可以做出一些假设:
如果你也有一个y
包含16x16
地图的张量,那么这个操作是可以实现的:
>>> x = torch.rand(100, 16, 16)
>>> y = torch.rand(100, 16, 16)
>>> torch.cat((x, y)).shape
torch.Size([200, 16, 16])
如果您y
在问题中考虑,则可以将100
标量值扩展到16x16
地图。并且,然后连接x
:
>>> x = torch.rand(100, 16, 16)
>>> y = torch.rand(100)
>>> y_r = y[:, None, None].repeat(1, 16, 16)
>>> torch.cat((x, y_r))
torch.Size([200, 16, 16])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句