Я пытаюсь найти градиенты поля скорости с помощью torch.autograd. Первоначально я присвоил координаты своего домена с помощью функции с именем «generate_coords», затем передал их функции «compute_gradients» для расчета градиентов. Моя форма поля скорости — [30,2,32,32] (2 канала для Ux и Uy).
Это код, который я использовал для вычисления градиенты:
def generate_coords(height, width, x_max, y_max):
x = torch.linspace(0, x_max, width)
y = torch.linspace(0, y_max, height)
xx, yy = torch.meshgrid(x, y, indexing='ij')
coords = torch.stack([xx, yy], dim=0)
coords = coords.unsqueeze(0)
return coords
def compute_gradients(U, coords):
U = U.requires_grad_()
coords = coords.requires_grad_()
Ux = U[:, 0, :, :] # Extracting Ux component
Uy = U[:, 1, :, :] # Extracting Uy component
x_coords = coords[:, 0, :, :] # Extracting x coordinates
y_coords = coords[:, 1, :, :] # Extracting y coordinates
# Computing the gradients
grad_Ux_x = torch.autograd.grad(outputs=Ux, inputs=x_coords, grad_outputs=torch.ones_like(Ux), create_graph=True, allow_unused=True)[0]
grad_Uy_y = torch.autograd.grad(outputs=Uy, inputs=y_coords, grad_outputs=torch.ones_like(Uy), create_graph=True, allow_unused=True)[0]
# Computing residuals
residuals = grad_Ux_x + grad_Uy_y
return residuals
coords = generate_coords(32, 32, 2520, 504)
grad_Ux_x, grad_Uy_y = compute_gradients(torch.tensor(actual_image_inputs_test), coords)
print(grad_Ux_x, grad_Uy_y)
Но показывает эту ошибку:
`TypeError Traceback (most recent call last)
Cell In[98], line 29
26 return residuals
28 coords = generate_coords(32, 32, 2520, 504)
---> 29 grad_Ux_x, grad_Uy_y = compute_gradients(torch.tensor(actual_image_inputs_test), coords)
30 print(grad_Ux_x, grad_Uy_y)
Cell In[98], line 24, in compute_gradients(U, coords)
21 grad_Uy_y = torch.autograd.grad(outputs=Uy, inputs=y_coords, grad_outputs=torch.ones_like(Uy), create_graph=True, allow_unused=True)[0]
23 # Computing residuals
---> 24 residuals = grad_Ux_x + grad_Uy_y
26 return residuals
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType`
Подробнее здесь: https://stackoverflow.com/questions/786 ... -types-for
Pytorch.autograd.grad показывает ошибку «TypeError: неподдерживаемые типы операндов для +: 'NoneType' и 'NoneType' ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
TypeError: неподдерживаемые типы операндов для +: «NoneType» и «NoneType».
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
TypeError: неподдерживаемые типы операндов для /: «свойство» и «комплекс».
Anonymous » » в форуме Python - 0 Ответы
- 76 Просмотры
-
Последнее сообщение Anonymous
-