code: def __init__(self, gamma, slopes, knot_spacings, validate_args=None):
      self.gamma = gamma
      self.slopes = slopes
      self.knot_spacings = knot_spacings
  
      self.b, self.knot_positions = PiecewiseLinear._to_orig_params(
          slopes=slopes, knot_spacings=knot_spacings
      )
      super(PiecewiseLinear, self).__init__(
          batch_shape=self.gamma.shape, validate_args=validate_args
      )
  
file_path: gluonts/src/gluonts/nursery/robust-mts-attack/pts/distributions/piecewise_linear.py
imports: import torch
  import torch.nn.functional
  from torch.distributions import constraints, NegativeBinomial, Poisson, Distribution, TransformedDistribution, AffineTransform
  from torch.distributions.utils import broadcast_all, lazy_property
  from .utils import broadcast_shape
label_desc: Use image node_id 1 to create a new PiecewiseLinear object from inherited base classes: Distribution with example: obj = PiecewiseLinear(gamma, slopes, knot_spacings, validate_args)