我有一个尺寸的三维张量,比如100x5x2,以及axis=1上张量的平均值,它给出了100x2的形状。这是批号。通常没有批处理,形状5x2和2的张量的除法工作得很好,但是对于带有批处理的3D张量,我收到了错误。
a = torch.rand(5,2)
b = torch.rand(2)
z=a/b给我预期的答案。
a = torch.rand(100,5,2)
b = torch.rand(100,2)
z=a/b给出以下错误。
张量a (5)的大小必须在非单例维数1处与张量b (100)的大小相匹配。
如何除以这些张量,使我的输出为100x5x2?就像组织的bmm一样?
发布于 2021-06-05 01:19:36
只需做:
z = a / b.unsqueeze(1)这增加了一个额外的维度在b,并使它的形状(100,1,2)是兼容的广播与a。
https://stackoverflow.com/questions/67844575
复制相似问题