tensor([[ 0.2364, -0.7752,  0.6372],
              [ 1.7201,  0.7394, -0.0504],
              [-0.3371, -1.0584,  0.5296],
              [ 0.3550, -0.4022,  1.5569],
              [ 0.2445, -0.0158,  1.1414]])
      >>> u, s, v = torch.svd(a)
      >>> u
      tensor([[ 0.4027,  0.0287,  0.5434],
              [-0.1946,  0.8833,  0.3679],
              [ 0.4296, -0.2890,  0.5261],
              [ 0.6604,  0.2717, -0.2618],
              [ 0.4234,  0.2481, -0.4733]])
      >>> s
      tensor([2.3289, 2.0315, 0.7806])
      >>> v
      tensor([[-0.0199,  0.8766,  0.4809],
              [-0.5080,  0.4054, -0.7600],
              [ 0.8611,  0.2594, -0.4373]])
      >>> torch.dist(a, torch.mm(torch.mm(u, torch.diag(s)), v.t()))
      tensor(8.6531e-07)
      >>> a_big = torch.randn(7, 5, 3)
      >>> u, s, v = torch.svd(a_big)
      >>> torch.dist(a_big, torch.matmul(torch.matmul(u, torch.diag_embed(s)), v.mT))
      tensor(2.6503e-06)