python 如何在Pytorch中将带梯度的Tensor列表转换为带梯度的Tensor的Tensor

mepcadol  于 2023-03-16  发布在  Python
关注(0)|答案(1)|浏览(202)

我在试着用梯度转换Tensor的列表,

a = [tensor(2.4888, grad_fn=<PowBackward0>), tensor(2.4224, grad_fn=<PowBackward0>)]

具有梯度的Tensor的Tensor。例如,预期结果:

a = tensor([tensor(2.4888, grad_fn=<PowBackward0>)], [tensor(2.4224, grad_fn=<PowBackward0>)])

我尝试的代码:

我试着用

a = torch.tensor(a, dtype=torch.float)

但它给了我以下的信息当前结果:

tensor([2.4888],[2.4224])
tzdcorbm

tzdcorbm1#

c = torch.cat([a, b], dim=0)
c.requires_grad = True 
c.grad = torch.cat([a.grad, b.grad], dim=0)

a和B需要是叶Tensor才能存储梯度。要使它们成为叶节点,您可以使用retain_grad函数,这样您的Tensor梯度将被存储。您能提供更多问题的上下文吗?
请参考此解决方案retain_grad

相关问题