class_docstr: TransformedDistribution used in temporal point processes.
  
  This class must implement new methods log_intensity, log_survival
  that are necessary for computing log-likelihood of TPP realizations. Also,
  sample_conditional is necessary for sampling TPPs.
  
  Additionally, the sequence of transformations passed to the constructor
  must be increasing.
class_docstr_tok: ["TransformedDistribution","used","in","temporal","point","processes",".","This","class","must","implement","new","methods","log_intensity",",","log_survival","that","are","necessary","for","computing","log-likelihood","of","TPP","realizations",".","Also",",","sample_conditional","is","necessary","for","sampling","TPPs",".","Additionally",",","the","sequence","of","transformations","passed","to","the","constructor","must","be","increasing","."]
docstr: Draw samples from the distribution.
  
  Parameters
  ----------
  num_samples
      Number of samples to generate.
  dtype
      Data type of the generated samples.
  lower_bound
      If None, generate samples as usual. If lower_bound is provided,
      all generated samples will be larger than the specified values.
      That is, we sample from `p(x | x > lower_bound)`.
      Shape: `(*batch_size)`
  
  Returns
  -------
  x
      Transformed samples drawn from the base distribution.
      Shape: `(num_samples, *batch_size)`
docstr_tok: ["Draw","samples","from","the","distribution",".","Parameters","--","--","--","--","--","num_samples","Number","of","samples","to","generate",".","dtype","Data","type","of","the","generated","samples",".","lower_bound","If","None",",","generate","samples","as","usual",".","If","lower_bound","is","provided",",","all","generated","samples","will","be","larger","than","the","specified","values",".","That","is",",","we","sample","from","`","p","(","x","|","x",">","lower_bound",")","`",".","Shape",":","`","(","*","batch_size",")","`","Returns","--","--","--","-","x","Transformed","samples","drawn","from","the","base","distribution",".","Shape",":","`","(","num_samples",",","*","batch_size",")","`"]
code: def sample(
      self,
      num_samples=None,
      dtype=np.float32,
      lower_bound: Optional[Tensor] = None,
  ) -> Tensor:
      """
      Draw samples from the distribution.
  
      Parameters
      ----------
      num_samples
          Number of samples to generate.
      dtype
          Data type of the generated samples.
      lower_bound
          If None, generate samples as usual. If lower_bound is provided,
          all generated samples will be larger than the specified values.
          That is, we sample from `p(x | x > lower_bound)`.
          Shape: `(*batch_size)`
  
      Returns
      -------
      x
          Transformed samples drawn from the base distribution.
          Shape: `(num_samples, *batch_size)`
      """
      with autograd.pause():
          if lower_bound is not None:
              z = lower_bound
              for t in self.transforms[::-1]:
                  z = t.f_inv(z)
              lower_bound = z
          x = self.base_distribution.sample(
              num_samples=num_samples, lower_bound=lower_bound
          )
          # Apply transformations to the sample
          for t in self.transforms:
              x = t.f(x)
      return x.astype(dtype)
  
imports: from typing import List, Optional, Tuple, Union
  import numpy
  from mxnet import autograd
  from gluonts.mx import Tensor
  from gluonts.mx.distribution.bijection import AffineTransformation, Bijection
  from gluonts.mx.distribution.distribution import Distribution, getF
  from gluonts.mx.distribution.distribution_output import DistributionOutput
  from gluonts.mx.distribution.transformed_distribution import TransformedDistribution, sum_trailing_axes
label_desc: Use image node_id 6 for calling the TPPTransformedDistribution obj's underlying member method code with example usage: obj.sample(num_samples, dtype, lower_bound) and returns: x