Pytorch gradient error: nonetype unsupported operand type(s) for +: 'NoneType' and 'NoneType'
Pytorch gradient error: nonetype unsupported operand type(s) for +: 'NoneType' and 'NoneType'
当我 运行 下面给出的代码时,我收到以下错误消息。该代码是更大代码的一部分,但本质上我在这里计算梯度。变量位移和 colloc_points 的类型为:tensor([[-0.0819, 0.1623, 0.1228]], grad_fn=),
张量 ([[-0.0556, 2.2222, 0.1667]], requires_grad=True) 分别。我该如何解决这个错误?
---> 43 eps_xy = 0.5*(u_y+v_x)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
u = displacement[0,0]
v = displacement[0,1]
w = displacement[0,2]
print(colloc_point)
x = colloc_point[0,0]
y = colloc_point[0,1]
z = colloc_point[0,2]
## Compute gradients
u_y = torch.autograd.grad(u, y, create_graph=True,allow_unused=True)[0]
v_x = torch.autograd.grad(v, x, create_graph=True,allow_unused=True)[0]
eps_xy = 0.5*(u_y+v_x)```
有可能,即使 u
、y
、v
和 x
需要梯度,u
也不是 y
并且,类似地 v
不依赖于 x
.
您可以通过设置 allow_unused=False
来检查,看看 torch.autograd.grad
returns 是否有错误。
当我 运行 下面给出的代码时,我收到以下错误消息。该代码是更大代码的一部分,但本质上我在这里计算梯度。变量位移和 colloc_points 的类型为:tensor([[-0.0819, 0.1623, 0.1228]], grad_fn=), 张量 ([[-0.0556, 2.2222, 0.1667]], requires_grad=True) 分别。我该如何解决这个错误?
---> 43 eps_xy = 0.5*(u_y+v_x)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
u = displacement[0,0]
v = displacement[0,1]
w = displacement[0,2]
print(colloc_point)
x = colloc_point[0,0]
y = colloc_point[0,1]
z = colloc_point[0,2]
## Compute gradients
u_y = torch.autograd.grad(u, y, create_graph=True,allow_unused=True)[0]
v_x = torch.autograd.grad(v, x, create_graph=True,allow_unused=True)[0]
eps_xy = 0.5*(u_y+v_x)```
有可能,即使 u
、y
、v
和 x
需要梯度,u
也不是 y
并且,类似地 v
不依赖于 x
.
您可以通过设置 allow_unused=False
来检查,看看 torch.autograd.grad
returns 是否有错误。