Register_buffer cannot update

Example:

class MyModule(nn.Module):
def init(self):
super(QLIF_Conv2d, self).init()
self.my_buffer_tmp = torch.zeros(1)
self.register_buffer(‘my_buffer’,my_buffer_tmp)
def forward(self):
self.my_buffer = tensor.ones(1)

return …

I cannot get my_buffer=torch.tensor(1);
I get my_buffer=torch.tensor(1)

How to update my_buffer when forward?

Your code works fine after fixing the tensor.ones to torch.ones and updates the buffer:

class MyModule(nn.Module):
    def __init__(self):
        super(MyModule, self).__init__()
        self.register_buffer('my_buffer', torch.zeros(1))

    def forward(self):
        self.my_buffer = torch.ones(1)
        return

model = MyModule()
print(model.my_buffer)
> tensor([0.])
model()
print(model.my_buffer)
> tensor([1.])

PS: you can post code snippets by wrapping them into three backticks ```, which makes debugging easier :wink: