RuntimeError: Expected 3-dimensional tensor, but got 2-dimensional tensor for argument
RuntimeError: Expected 3-dimensional tensor, but got 2-dimensional tensor for argument
我有两个张量名称:'wy' 和 'x',它们的大小都是 8:
wy= tensor([[ 74.2090, -92.9444, 45.2677, -38.4132, -39.8641, -6.9193, 67.4830,
-80.1534]], grad_fn=<AddmmBackward>)
x= tensor([[ 70., 77., 101., 75., 40., 83., 48., 73.]])
现在,我想做 bmm 乘以 x * wy 如下:
xWy = x.bmm(Wy.unsqueeze(2)).squeeze(3)
我收到一个错误:
RuntimeError: Expected 3-dimensional tensor, but got 2-dimensional tensor for argument #1 'batch1' (while checking arguments for bmm)
8*8应该可以。但是不知道为什么每次都报错
任何帮助,请!
bmm
代表批次matrix-matrix产品。所以它期望 both 张量具有批量维度(即错误所说的 3D)。
对于单张量,您想使用 mm
instead. Note that Tensor.mm()
也存在相同的行为。
x.mm(wy.transpose(0, 1))
tensor([[-5051.9199]])
或者更好的是,对于两个一维张量,您可以使用 dot
作为点积。
# Or simply do not initialise them with an additional dimension. Not needed.
x.squeeze().dot(wy.squeeze())
tensor(-5051.9199)
我有两个张量名称:'wy' 和 'x',它们的大小都是 8:
wy= tensor([[ 74.2090, -92.9444, 45.2677, -38.4132, -39.8641, -6.9193, 67.4830,
-80.1534]], grad_fn=<AddmmBackward>)
x= tensor([[ 70., 77., 101., 75., 40., 83., 48., 73.]])
现在,我想做 bmm 乘以 x * wy 如下:
xWy = x.bmm(Wy.unsqueeze(2)).squeeze(3)
我收到一个错误:
RuntimeError: Expected 3-dimensional tensor, but got 2-dimensional tensor for argument #1 'batch1' (while checking arguments for bmm)
8*8应该可以。但是不知道为什么每次都报错
任何帮助,请!
bmm
代表批次matrix-matrix产品。所以它期望 both 张量具有批量维度(即错误所说的 3D)。
对于单张量,您想使用 mm
instead. Note that Tensor.mm()
也存在相同的行为。
x.mm(wy.transpose(0, 1))
tensor([[-5051.9199]])
或者更好的是,对于两个一维张量,您可以使用 dot
作为点积。
# Or simply do not initialise them with an additional dimension. Not needed.
x.squeeze().dot(wy.squeeze())
tensor(-5051.9199)