I’ve registered a couple of buffers using
model.register_buffer(...) method. The model here is an
nn.Module object with defined architecture and forward pass.
Question is, how do I directly access a buffer known its name? Iterating over
named_buffers is not efficient for my use case, and methods like
module.get_buffer() shown here return
... object has no attribute get_buffer.
Example to reproduce:
import torch, torch.nn as nn fc = nn.Linear(512, 10) fc.register_buffer('buffer', None) print(fc._buffers['buffer']) # This works, but doesn't look like I should, because its a private entity print(fc.get_buffer('buffer')) # Doesn't work # How do I access 'buffer' without iterator?
Edit: Just got it resolved.
getattr(fc, 'buffer') or
fc.buffer gives the expected behaviour.