
    Vh                        d dl Z d dlmZ  G d dej                        Z G d dej                        Z G d dej                        Z G d d	ej                        Z G d
 dej                        Z G d dej                        Z	y)    Nc                   >     e Zd Zdej                  f fdZd Z xZS )
UnitModuledevicec                 B   t         |           t        j                  dd|      | _        t        j
                  t        j                         t        j                  dd|      t        j                               | _        t        j                  dd|      | _        y Nd   r   )	super__init__nnLinearl1
SequentialReLUseql2selfr   	__class__s     ^/home/dcms/DCMS/lib/python3.12/site-packages/torch/testing/_internal/common_dist_composable.pyr   zUnitModule.__init__   sj    ))CV4==GGIIIc3v.GGI

 ))CV4    c                 `    | j                  | j                  | j                  |                  S N)r   r   r   r   xs     r   forwardzUnitModule.forward   s"    wwtxx
+,,r   __name__
__module____qualname__torchr   r   r   __classcell__r   s   @r   r   r   
   s    5u|| 5-r   r   c                   >     e Zd Zdej                  f fdZd Z xZS )CompositeModelr   c                     t         |           t        j                  dd|      | _        t        |      | _        t        |      | _        t        j                  dd|      | _        y r   )	r
   r   r   r   r   r   u1u2r   r   s     r   r   zCompositeModel.__init__   sN    ))CV4V$V$))CV4r   c           	      ~    | j                  | j                  | j                  | j                  |                        S r   )r   r(   r'   r   r   s     r   r   zCompositeModel.forward!   s+    wwtwwtwwtwwqz2344r   r   r#   s   @r   r%   r%      s    5u|| 55r   r%   c                   >     e Zd Zdej                  f fdZd Z xZS )UnitParamModuler   c                 f   t         |           t        j                  dd|      | _        t        j
                  t        j                         t        j                  dd|      t        j                               | _        t        j                  t        j                  d|            | _        y )Nr   r	   r   r   )r
   r   r   r   lr   r   r   	Parameterr!   randnpr   s     r   r   zUnitParamModule.__init__&   sq    3F3==GGIIIc3v.GGI

 ekk*VDEr   c                 ~    t        j                  | j                  | j                  |            | j                        S r   )r!   mmr   r.   r1   r   s     r   r   zUnitParamModule.forward0   s(    xx+TVV44r   r   r#   s   @r   r+   r+   %   s    Fu|| F5r   r+   c                   >     e Zd Zdej                  f fdZd Z xZS )CompositeParamModelr   c                 L   t         |           t        j                  dd|      | _        t        |      | _        t        |      | _        t        j                  t        j                  d|            | _        | j                  dt        j                  d|      d       y )Nr   r	   r-   bufferT)
persistent)r
   r   r   r   r.   r   r'   r(   r/   r!   r0   r1   register_bufferr   s     r   r   zCompositeParamModel.__init__5   sz    3F3V$V$ekk*VDEekk*V< 	 	
r   c                     | j                  | j                  | j                  |                  }| j                  }t	        j
                  ||      S r   )r(   r'   r.   r1   r!   r3   )r   r   abs       r   r   zCompositeParamModel.forward?   s:    GGDGGDFF1I&'FFxx1~r   r   r#   s   @r   r5   r5   4   s    
u|| 
r   r5   c                   ~     e Zd Zdeej
                  df   ddf fdZdej                  dej                  fdZ	 xZ
S )FakeSequentialmodules.returnNc                 B    t         |           t        |      | _        y r   )r
   r   list_module_sequence)r   r?   r   s     r   r   zFakeSequential.__init__H   s     $Wr   r   c                 8    | j                   D ]
  } ||      } |S r   )rC   )r   r   modules      r   r   zFakeSequential.forwardL   s%    ++ 	Fq	A	r   )r   r   r    tupler   Moduler   r!   Tensorr   r"   r#   s   @r   r>   r>   E   s>    .ryy#~!6 .4 . %,, r   r>   c                   <     e Zd Zdej                  ddf fdZ xZS )NestedSequentialModelr   r@   Nc                    t         |           t        j                  t        j                  dd|      t        t        j                  dd|      t        j                         t        t        j                  dd|            t        j                               t        j                  dd|            | _        t        j                  dd|      | _        t        j                  t        j                         t        j                  dd|      t        t        j                  ddd|      t        j                  ddd|                  | _	        dt        j                  d	t        j                  fd
}y )N   r	         F)biasr      r   r@   c                 `    | j                  | j                  | j                  |                  S r   )seq2linseq1r   s     r   r   z/NestedSequentialModel.__init__.<locals>.forwardo   s"    99TXXdiil344r   )r
   r   r   r   r   r>   r   rT   rS   rR   r!   rH   )r   r   r   r   s      r   r   zNestedSequentialModel.__init__S   s    MMIIa6*		!Qv.	IIa62 	 IIa6*
	 99Q&1MMGGIIIa6*		!QU6:		!QU6:
		5U\\ 	5ell 	5r   )r   r   r    r!   r   r   r"   r#   s   @r   rJ   rJ   R   s    5u|| 5 5 5r   rJ   )
r!   torch.nnr   rG   r   r%   r+   r5   r>   rJ    r   r   <module>rW      sm     - -	5RYY 	55bii 5")) "
RYY 
5BII 5r   