
    IЦi                     P    S SK Jr  S SKJr  S SKJr  S SKJr  S/r " S S\5      r	g)    )constraints)Normal)TransformedDistribution)StickBreakingTransformLogisticNormalc                      ^  \ rS rSrSr\R                  \R                  S.r\R                  r
SrS
U 4S jjrS
U 4S jjr\S 5       r\S 5       rS	rU =r$ )r      a  
Creates a logistic-normal distribution parameterized by :attr:`loc` and :attr:`scale`
that define the base `Normal` distribution transformed with the
`StickBreakingTransform` such that::

    X ~ LogisticNormal(loc, scale)
    Y = log(X / (1 - X.cumsum(-1)))[..., :-1] ~ Normal(loc, scale)

Args:
    loc (float or Tensor): mean of the base distribution
    scale (float or Tensor): standard deviation of the base distribution

Example::

    >>> # logistic-normal distributed with mean=(0, 0, 0) and stddev=(1, 1, 1)
    >>> # of the base Normal distribution
    >>> # xdoctest: +IGNORE_WANT("non-deterministic")
    >>> m = LogisticNormal(torch.tensor([0.0] * 3), torch.tensor([1.0] * 3))
    >>> m.sample()
    tensor([ 0.7653,  0.0341,  0.0579,  0.1427])

)locscaleTc                    > [        XUS9nUR                  (       d  UR                  S/5      n[        TU ]  U[        5       US9  g )N)validate_args   )r   batch_shapeexpandsuper__init__r   )selfr
   r   r   	base_dist	__class__s        b/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/distributions/logistic_normal.pyr   LogisticNormal.__init__&   sG    3]C	$$!((!-I-/} 	 	
    c                 J   > U R                  [        U5      n[        TU ]  XS9$ )N)	_instance)_get_checked_instancer   r   r   )r   r   r   newr   s       r   r   LogisticNormal.expand.   s&    ((Cw~k~99r   c                 B    U R                   R                   R                  $ N)r   r
   r   s    r   r
   LogisticNormal.loc2   s    ~~''+++r   c                 B    U R                   R                   R                  $ r   )r   r   r    s    r   r   LogisticNormal.scale6   s    ~~''---r    r   )__name__
__module____qualname____firstlineno____doc__r   realpositivearg_constraintssimplexsupporthas_rsampler   r   propertyr
   r   __static_attributes____classcell__)r   s   @r   r   r      sb    , *..9M9MNO!!GK
: , , . .r   N)
torch.distributionsr   torch.distributions.normalr   ,torch.distributions.transformed_distributionr   torch.distributions.transformsr   __all__r   r$   r   r   <module>r8      s(    + - P A 
-., -.r   