def forward(self, input, sigma=None):
res = F.linear(input, self.weight, self.bias)
if sigma is None:
return res
if self.rand_buf is None or self.rand_buf.size() != res.size():
self.rand_buf = torch.FloatTensor(res.size())
if input.is_cuda:
self.rand_buf = self.rand_buf.cuda()
torch.randn(self.rand_buf.size(), out=self.rand_buf)
# print(m.size(), res.size())
return res + torch.mul(sigma, Variable(self.rand_buf))
评论列表
文章目录