you can do this
>>> result = torch.zeros(2, 4, 4)
>>> sigma = torch.tensor([0, 0.01, 1, 10])
>>> result.diagonal(dim1=1, dim2=2).normal_().mul_(sigma)
tensor([[ 0.0000, -0.0064,  0.6829, -2.7818],
        [ 0.0000,  0.0084, -1.2700, 10.5473]])
>>> result
tensor([[[ 0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000, -0.0064,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.6829,  0.0000],
         [ 0.0000,  0.0000,  0.0000, -2.7818]],

        [[ 0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0084,  0.0000,  0.0000],
         [ 0.0000,  0.0000, -1.2700,  0.0000],
         [ 0.0000,  0.0000,  0.0000, 10.5473]]])