self.var_bias = torch.cat([self.vb]*10) is executed in the constructor right?
torch.cat returns a new Variable that does not share storage with the previous variable.
If self.var_bias is changed, self.vb does not automatically change unless you re-execute the line self.var_bias = torch.cat([self.vb]*10). (the Variable history is saved, but the memory locations are not shared).
What you are looking for is probably expand, which inflates the size in a particular dimension, but also shares the underlying storage.
http://pytorch.org/docs/master/tensors.html?highlight=expand#torch.Tensor.expand 103