在PyTorch中出现,当尝试在非浮点数张量上执行梯度相关操作时会出现。为了解决这个问题,您需要确保您的张量具有浮点数数据类型(例如torch.float32或torch.float64),然后再启用梯度。
例如:
源代码:
import torch
x=torch.arange(4)
x.requires_grad_(True)
print(x)
print(x.grad)
y=2*torch.dot(x,x)
print(y)
y.backward()
print(x.grad)
修改后:
import torch
x=torch.arange(4.0)
x.requires_grad_(True)
print(x)
print(x.grad)
y=2*torch.dot(x,x)
print(y)
y.backward()
print(x.grad)