如果我在 PyTorch 中创建一个Parameter
,那么它会自动分配为一个叶变量:
x = torch.nn.Parameter(torch.Tensor([0.1]))
print(x.is_leaf)
这打印出来True
。据我了解,如果x
是叶变量,那么它将由优化器更新。
但是,如果我再分配x
给 GPU:
x = torch.nn.Parameter(torch.Tensor([0.1]))
x = x.cuda()
print(x.is_leaf)
这打印出来False
。所以现在我无法分配x
给 GPU 并将其保留为叶节点。
为什么会这样?