is assumed to be the first dimension of the tensor and if the
      batch size is less than "chunks", the number of micro-batches is
      equal to the batch size.
  Only tensors are split into multiple micro-batches, non-Tensor
  inputs are just replicated as-is in each micro-batch. For non-
  Tensor outputs in the last stage of the pipeline, they are
  aggregated as a "List" and returned the user. For example, if
  you have 2 micro-batches returning the integer 5, the user would
  receive the consolidated output of *[5, 5]*

  All the input tensors need to be on the same device as the first
  partition of the pipeline.

  If a tensor is wrapped with the "NoChunk" wrapper, the tensor is
  not split across micro-batches and is replicated as-is similar
  to non-tensors.

  Parameters:
     **inputs** -- input mini-batch

  Returns:
     "RRef" to the output of the mini-batch

  Raises:
