class_docstr: Transform via the mapping
  :math:`y=\operatorname{sign}(x)|x|^{\text{exponent}}`.
  
  Whereas :class:`~torch.distributions.transforms.PowerTransform` allows
  arbitrary ``exponent`` and restricts domain and codomain to postive values,
  this class restricts ``exponent > 0`` and allows real domain and codomain.
  
  .. warning:: The Jacobian is typically zero or infinite at the origin.
class_docstr_tok: ["Transform","via","the","mapping",":","math",":","`","y=\\operatorname","{","sign","}","(","x",")","|x|^","{","\\text","{","exponent","}","}","`",".","Whereas",":","class",":","`","~torch.distributions.transforms.PowerTransform","`","allows","arbitrary","``","exponent","``","and","restricts","domain","and","codomain","to","postive","values",",","this","class","restricts","``","exponent",">","0","``","and","allows","real","domain","and","codomain",".","..","warning",":",":","The","Jacobian","is","typically","zero","or","infinite","at","the","origin","."]
code: def with_cache(self, cache_size=1):
      if self._cache_size == cache_size:
          return self
      return PositivePowerTransform(
          self.exponent, cache_size=cache_size
      )
  
file_path: pyro/pyro/distributions/transforms/power.py
imports: import torch
  from torch.distributions import Distribution, constraints
  from torch.distributions.transforms import Transform
label_desc: Use image node_id 2 for calling the PositivePowerTransform obj's underlying member method code with example usage: obj.with_cache(cache_size) and returns: PositivePowerTransform, self