RuntimeError: linalg.solve: Expected a floating point or complex tensor as input. Got Long

具体来说,是PyTorch的线性代数库(torch.linalg)的solve函数期望接收一个浮点数或复数张量作为输入,但实际上收到了一个长整型(Long)张量。

解决这个问题的方法是将你的长整型张量转换为浮点数张量。这可以通过使用.float()或.double()方法来实现。
如下:

import torch

# 假设你的原始张量是这样的
A = torch.tensor([[2, -3], [1, 1]], dtype=torch.long)
b = torch.tensor([8, 5], dtype=torch.long)

# 将它们转换为浮点数或双精度张量
A = A.float()
b = b.float()

# 然后你就可以使用solve函数了
x = torch.linalg.solve(A, b)
print(x)

输出:

tensor([4.6000, 0.4000])

你可能感兴趣的:(Python学习和使用过程积累,python,深度学习,pytorch,人工智能)