the output tensor having 1 fewer dimension than "input".
Parameters:
      * input (Tensor) -- the input tensor.
  * **dim** (*int*) -- the dimension to reduce.

  * **keepdim** (*bool*) -- whether the output tensor has "dim"
    retained or not.

Keyword Arguments:
      dtype ("torch.dtype", optional) -- the desired data type of
      returned tensor. If specified, the input tensor is casted to
      "dtype" before the operation is performed. This is useful for
      preventing data type overflows. Default: None.
Example:
  >>> a = torch.randn(4, 2)
  >>> a
  tensor([[ 0.5261, -0.3837],
          [ 1.1857, -0.2498],
          [-1.1646,  0.0705],
          [ 1.1131, -1.0629]])
  >>> torch.prod(a, 1)
  tensor([-0.2018, -0.2962, -0.0821, -1.1831])
