Как я могу запустить метод Back() для отдельных пикселей изображения, не вызывая ошибки при попытке вернуться по графику ⇐ Python

Программы на Python
Anonymous
Как я могу запустить метод Back() для отдельных пикселей изображения, не вызывая ошибки при попытке вернуться по графику

Сообщение Anonymous »

У меня есть этот код

Код: Выделить всё

...
vertex_id = 275

deform_verts.retain_grad() # input
predicted_silhouette.retain_grad() # output

impact_img = torch.zeros_like(predicted_silhouette, requires_grad=False)
for i in range(image_size):
for j in range(image_size):
pixel = predicted_silhouette[i][j]
pixel.retain_grad()
pixel.backward()
impact = deform_verts.grad[vertex_id]
impact_img[i][j] += impact.sum()

plt.imshow(impact_img.detach().cpu().numpy())
Я пытаюсь создать изображение на основе того, как одна запись deform_verts влияет на все изображение. Для этого я просматриваю каждый пиксель выходного изображения, вызываю .backward() и вставляю его градиент в новое изображение для целей визуализации. Однако, когда я вызываю метод back() для первого пикселя, я не могу вызвать его для второго, поскольку подозреваю, что промежуточные переменные уже использовались в обратном распространении ошибки. Я пытался использовать continue_graph, но не думаю, что это дает то, что мне нужно, поскольку изображение выглядит далеко не так, как я ожидал.


Подробнее здесь: https://stackoverflow.com/questions/790 ... n-error-of

Вернуться в «Python»