use different precision for backward.
Parameters:
      * input (Tensor) -- the first matrix to be matrix
        multiplied
  * **mat2** (*Tensor*) -- the second matrix to be matrix
    multiplied

Keyword Arguments:
      out (Tensor, optional) -- the output tensor.
Example:
  >>> mat1 = torch.randn(2, 3)
  >>> mat2 = torch.randn(3, 3)
  >>> torch.mm(mat1, mat2)
  tensor([[ 0.4851,  0.5037, -0.3633],
          [-0.0760, -3.6705,  2.4784]])
