 PiecewiseLinearTransform takes inputs
 – predictions, a 2D or 1D tensor (Tensor)
 of size (batch_size x prediction_dimensions).

 The piecewise linear functions are
 stored in bounds, slopes and intercepts.
 The output tensor has the same shape
 of input predictions
and contains
 the predictions transformed by the
 piecewise linear functions.

 Each column of predictions has its own
 piecewise linear transformation functions.

 Therefore the size of piecewise function
 parameters are pieces x prediction_dimensions,
 except for binary predictions where
 only the positive prediction needs
 them.

 ———–
 @note

 in each piece, low bound is excluded
 while high bound is included. Also the
 piecewise linear function must be continuous.

 Notes

  If the input is binary predictions
 (Nx2 or Nx1 tensor), set the binary arg
 to true so that one group of piecewise
 linear functions is needed (see details
 below).

  The transform parameters (bounds,
 slopes, intercepts) can be passed either
 through args or through input blobs.

  If we have multiple groups of piecewise
 linear functions, each group has the
 same number of pieces.

  If a prediction is out of the bounds,
 it is capped to the smallest or largest
 bound.
