This can be called as
  to(device=None, dtype=None, non_blocking=False)

  to(dtype, non_blocking=False)

  to(tensor, non_blocking=False)

  to(memory_format=torch.channels_last)

  Its signature is similar to "torch.Tensor.to()", but only
  accepts floating point or complex "dtype"s. In addition, this
  method will only cast the floating point or complex parameters
  and buffers to "dtype" (if given). The integral parameters and
  buffers will be moved "device", if that is given, but with
  dtypes unchanged. When "non_blocking" is set, it tries to
  convert/move asynchronously with respect to the host if
  possible, e.g., moving CPU Tensors with pinned memory to CUDA
  devices.

  See below for examples.

  Note:

    This method modifies the module in-place.

  Parameters:
     * **device** ("torch.device") -- the desired device of the
       parameters and buffers in this module
