首页 > 解决方案 > 尺寸超出范围(预计在 [-2, 1] 范围内,但得到 2)

问题描述

为什么会弹出以​​下错误?什么应该在这个范围内,为什么?-2 维是什么意思?

RuntimeError: dimension out of range (expected to be in range of [-2, 1], but got 2)

此代码将产生错误

import torch 

torch.bmm(torch.randn(1000, 784) , torch.randn(784, 10))

标签: pytorch

解决方案


火炬.mm

执行矩阵 mat1 和 mat2 的矩阵乘法。

如果 mat1 是 (n×m) 张量,mat2 是 (m×p) 张量,out 将是 (n×p) 张量。

火炬.bmm

执行存储在 batch1 和 batch2 中的矩阵的批处理矩阵乘积。

batch1 和 batch2 必须是 3-D 张量,每个张量都包含相同数量的矩阵。

如果batch1是(b×n×m)张量,batch2是(b×m×p)张量,out是(b×n×p)张量。

以下代码片段有效。

import torch

x = torch.mm(torch.randn(100, 78) , torch.randn(78, 10))
bsize = 16
x = torch.bmm(torch.randn(bsize, 100, 78) , torch.randn(bsize, 78, 10))

推荐阅读