在火炬中反转整数类型矩阵时出错

Getting an error when inverting an integer type matrix in torch

我试图找到由随机整数组成的 3x3 矩阵的逆矩阵:torch.randint()。但是,这样做时,我收到错误消息: "inverse_cpu" not implemented for 'Long'

代码:

A = torch.randint(0, 10, (3, 3))
A_inv = A.inverse()
print(A @ A_inv, "\n", A_inv @ A)

我相信 A.inverse() 期望矩阵 A 的逆矩阵也是整数类型,但事实并非如此。也许我们可以让矩阵 A 的类型像 torch.Tensor() 这样的浮点数,或者不管怎样都让 A_inv 反转它。虽然我不太确定该怎么做。

感谢您的协助!

好的,我找到了两种方法:

1.) A = torch.randint(0, 10, (3, 3), dtype=torch.float32)

2.) A = torch.Tensor(np.random.randint(0, 10, (3, 3)))

然后反转两者都不会出错,因为它们现在都是 float32 类型。