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)```




有可能,即使 uyvx 需要梯度,u 也不是 y 并且,类似地 v 不依赖于 x.

您可以通过设置 allow_unused=False 来检查,看看 torch.autograd.grad returns 是否有错误。