在 PyTorch 'named_parameters' 中为参数写入内存

Writing memory for parameters in PyTorch `named_parameters`

提问人:fordicus 提问时间:6/21/2023 最后编辑:fordicus 更新时间:6/23/2023 访问量:54

问:

class MyAlgo(torch.optim.Optimizer):

    def __init__(self, params, model):

        self.model = model

    def step(self, closure = None):

        for name, param in self.model.named_parameters(): 
            param = "a Tensor in size of param"

在PyTorch中,从方法返回的方法可以写成上述方法吗?答案(更新):应该使用就地操作:param.copy_(torch.Tensor-like)写入。parammodel.named_parameters()param

另一个问题是,这是操纵参数的最佳方法吗?基于self.param_groups的方法是否具有更好的效率优势?

python pytorch 命名参数

评论

0赞 BIg G 6/21/2023
答案是肯定的。可以得到这样的参数。
0赞 fordicus 6/23/2023
@BIgG,你的答案似乎不是我一直在寻找的。我尝试按行更新模型参数,但事实证明,在多次调用 时没有参数发生变化。param = somethingstep()
0赞 fordicus 6/23/2023
要进入,应使用就地操作:。writeparamfor name, param in self.model.named_parameters(): param.copy_(torch.Tensor-kind)

答: 暂无答案