
    Ph=                         d dl mZ 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)    )TupleNc                   >     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     yC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\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/   r2   r   s     r   r   zUnitParamModule.forward/   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                     t         |           t        j                  dd|      | _        t        |      | _        t        |      | _        t        j                  t        j                  d|            | _        y r.   )r   r   r   r   r/   r   r(   r)   r0   r"   r1   r2   r   s     r   r   zCompositeParamModel.__init__4   sU    3F3V$V$ekk*VDEr   c                     | j                  | j                  | j                  |                  }| j                  }t	        j
                  ||      S r   )r)   r(   r/   r2   r"   r4   )r   r   abs       r   r   zCompositeParamModel.forward;   s:    GGDGGDFF1I&'FFxx1~r   r   r$   s   @r   r6   r6   3   s    Fu|| Fr   r6   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__D   s     $Wr   r   c                 8    | j                   D ]
  } ||      } |S r   )rA   )r   r   modules      r   r   zFakeSequential.forwardH   s     ++Fq	A ,r   )r   r    r!   r   r   Moduler   r"   Tensorr   r#   r$   s   @r   r<   r<   A   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>.forwardi   s"    99TXXdiil344r   )r   r   r   r   r   r<   r   rQ   rP   rO   r"   rE   )r   r   r   r   s      r   r   zNestedSequentialModel.__init__O   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   rG   rG   N   s    5u|| 5 5 5r   rG   )typingr   r"   torch.nnr   rD   r   r&   r,   r6   r<   rG    r   r   <module>rU      sp      - -	5RYY 	55bii 5")) 
RYY 
5BII 5r   