supports batches of matrices, and if "A" is a batch of matrices
   then the output has the same batch dimensions.
The parameter "mode" chooses between the full and reduced QR
   decomposition. If "A" has shape (, m, n), denoting k = min(m,
   n)*


"mode"= 'reduced' (default): Returns (Q, R) of shapes (, m,
     k), (, k, n) respectively. It is always differentiable.


"mode"= 'complete': Returns (Q, R) of shapes (, m, m),
     (, m, n) respectively. It is differentiable for m <= n.


"mode"= 'r': Computes only the reduced R. Returns (Q, R)
     with Q empty and R of shape (, k, n)*. It is never
     differentiable.


Differences with numpy.linalg.qr:


"mode"= 'raw' is not implemented.


Unlike numpy.linalg.qr, this function always returns a tuple of
     two tensors. When "mode"= 'r', the Q tensor is an empty
     tensor.


Warning:
 The elements in the diagonal of *R* are not necessarily positive.
