Pytorch can't optimize a non-leaf Tensor

本文最后更新于:2022年7月4日 上午

本文记录 pytorch: can’t optimize a non-leaf Tensor 解决方案。

错误

运行优化时报错

1
2
3
4
5
6
7
from torch import optim

weights = torch.rand(2,1,128,416)
weights.requires_grad = True
weights = weights.cuda()
optimizer = optim.Adam([weights], lr=0.01)

  • 报错: can’t optimize a non-leaf Tensor

解决方案

需要先把Tensor放入到GPU中,然后再设置Tensor.requires_grad=True。

1
2
3
4
5
6
7
from torch import optim

weights = torch.rand(2,1,128,416)
weights = weights.cuda()
weights.requires_grad = True
optimizer = optim.Adam([weights], lr=0.01)

参考资料


Pytorch can't optimize a non-leaf Tensor
https://www.zywvvd.com/notes/study/deep-learning/pytorch/none-leaf-tensor/none-leaf-tensor/
作者
Yiwei Zhang
发布于
2021年3月2日
许可协议