o
    soi|S                     @  sH   d dl mZ d dlZd dlZd dlmZ d dlmZ G dd deZ	dS )    )annotationsN)Base)expectc                   @  s   e Zd ZedddZedddZedddZedd	d
ZedddZedddZ	edddZ
edddZedddZdS )ConvTransposereturnNonec               	   C  s   t g dg dg dgggt j} t g dg dg dgg dg dg dgggt j}tjdddgdg}t g d	g d
g dg dg dgg d	g d
g dg dg dgggt j}t|| |g|gdd d S )N              ?       @      @      @      @      @      @       @r
   r
   r
   r   XWYr	   r
   r   r   r   r   r         .@      (@r         "@      5@      B@      ;@r   r         4@     @@      8@      *@r   r%   r   r   r   test_convtransposeinputsoutputsnamenparrayastypefloat32onnxhelper	make_noder   xr   nodey r8   ]/home/ubuntu/.local/lib/python3.10/site-packages/onnx/backend/test/case/node/convtranspose.pyexport   sB   	zConvTranspose.exportc                  C  s   t g dggt j} t g dg dggt j}tjdddgdg}t g dg dggt j}t|| |g|gdd	 d S )
Nr   r   r   r   r   r   r   test_convtranspose_1dr(   r,   r4   r8   r8   r9   export_convtranspose_1d6   s   z%ConvTranspose.export_convtranspose_1dc                  C  s  t g dg dg dg dgg dg dg dg dgg d	g d
g dg dggggt j} t g dg dg dgg dg dg dgg dg dg dggg dg dg dgg dg dg dgg dg dg dggggt j}tjdddgdg}t g dg dg dg dg dg dgg dg dg dg dg dg dgg dg dg d g d!g d"g d#gg d$g d%g d&g d'g d(g d)gg d*g d+g d,g d-g d.g d/ggg dg dg dg dg dg dgg dg dg dg dg dg dgg dg dg d g d!g d"g d#gg d$g d%g d&g d'g d(g d)gg d*g d+g d,g d-g d.g d/ggggt j}t|| |g|gd0d1 d S )2N)r	   r
   r   r   r   )r   r   r   r   r   )      $@      &@r   r%         ,@)r         0@      1@      2@      3@)r"   r         6@      7@r$   )      9@      :@r          <@g      =@)      >@      ?@g      @@r#   g      A@)     A@r        B@g      C@     C@)      D@g     D@      E@     E@      F@)     F@g      G@g     G@      H@     H@)      I@     I@      J@g     J@      K@)     K@      L@     L@      M@     M@r   r   r   r   r   )r	   r
   r   r   r   r   r   )r   r   r   r    r#   r$   r%   )r   r#   rX        O@      R@rV   r    )rI   r^   g     X@g      [@     @]@     @T@rO   )rF   rW   ra        U@     @W@g      P@r#   )r   rJ   rS   rV   rX   rL   rC   )r"   rO        P@r_   g     S@rX   rH   )rU   g      Z@     @d@     e@     @g@g      `@rd   )     V@rg         r@      s@     @t@g     k@     \@)g      ^@g     n@g     w@     x@     y@     q@g      b@)rh         g@ro   g     `r@rj   g      j@g     Z@)rU   g     Y@g     c@re         e@rl   r\   )      N@     ^@g     g@     h@g     i@     a@r_   )     `@     @q@     pz@g     {@     |@g     s@g     c@)g      l@ry   g     @g     Ȇ@     @g     @     Pp@)g     p@g     (@g     (@g      @g     ؋@     ؂@rj   )g     `h@rm   r|   g     h@g     @      {@g     `k@)     @Z@g     j@rk        t@g     `u@g     l@r`   )rr   g     ^@rg   g      h@rt   g     `@g      Q@)g     @`@     p@g      y@rn        z@ri   g     @b@)g     @j@r   g     @@g     Є@g     `@g     |@g     @m@)g      n@g     `~@g     @rz   g     0@     P@r   )g     @e@g     u@r   g     @g     @g      w@rg   )rh   g     f@rw   ro   ri   g     @h@g     X@)rN   ra   rs   g     _@      `@rb   rQ   )g     @U@g     e@r{   g     p@     q@rp   rc   )rv   r   rn   rx   r}   g     0r@g     `b@)g     b@g     r@ry   g     @}@g     }@     t@re   )r~   g     j@r   g     pt@r   g      l@g     @\@)rY   g     [@rq   g     `e@rf   r`   r]   test_convtranspose_3dr(   r,   r4   r8   r8   r9   export_convtranspose_3dF   s   
				,				Y[z%ConvTranspose.export_convtranspose_3dc                  C  s  t g dg dg dgggt j} t g dg dg dgg dg dg dgggt j}t g dg dg dg dg dg dg dg dg dg dg
g dg dg dg dg dg dg dg dg dg dg
ggt j}tjjd	d
dgdgddgddgd}t|| |g|gdd tjjd	d
dgdgddgddgd}t|| |g|gdd tjjd	d
dgdgdddgddgddgddgd}t|| |g|gdd d S )Nr   r   r   r   )r	   r	   r
   r
   r   r   r   r	   )r   r   r   r   r   r   r   r	   )r   r   r%   r   r   r   r   r	   )r	   r	   r	   r	   r	   r	   r	   r	   r   r   r   r         
      )stridesoutput_shapetest_convtranspose_output_shaper(      )r   output_paddingtest_convtranspose_padtest)r+   r   r   kernel_shaper   test_convtranspose_kernel_shaper,   )r5   r   r7   r6   r8   r8   r9   export_convtranspose_attributes   sx   	
z-ConvTranspose.export_convtranspose_attributesc                  C  s  t g dg dg dgggt j} t g dg dg dgg dg dg dgggt j}tjjdddgdgd	d
gg dd}t g dg dg dg dg dg dg dgg dg dg dg dg dg dg dgggt j}t|| |g|gdd d S )Nr   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   pads)r
   r
   r   )r   r   r   )r%   r   r   test_convtranspose_padsr(   r,   r4   r8   r8   r9   export_convtranspose_pads  sN   	
z'ConvTranspose.export_convtranspose_padsc                  C  s   t g dg dg dgggt j} t ddgddggggt j}tjjdd	d
gdgddgd}t g dg dg dg dg dgggt j}t|| |g|gdd d S )N)r   r   r
   )r   r   r   )r   r   r   r   r   r
   r   r   r   r   r   r   )	dilations)r   rZ   r%   r@   r   )r^   rK   g     P@r=   r?   )r$   rD         S@r   r   )r   r   g      V@rR   r^   )r   r   r#   rB   rX   test_convtranspose_dilationsr(   r,   r4   r8   r8   r9   export_convtranspose_dilationsI  s,   "z,ConvTranspose.export_convtranspose_dilationsc               
   C  s   t g dg dg dgggt j} t g dg dg dgg dg dg dgggt j}tjjdddgdgd	d
d
gd}t g dg dg dg dg dg dgg dg dg dg dg dg dgggt j}t|| |g|gdd d S )Nr   r   r   r   r   r   r   r   
SAME_UPPERr   )auto_padr   )r	   r	   r
   r
   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r"   r>   r$   r%   )r   r   r%   r   r   r   test_convtranspose_autopad_samer(   r,   r4   r8   r8   r9   !export_convtranspose_autopad_samed  sJ   		z/ConvTranspose.export_convtranspose_autopad_samec               	   C  s  t g dg dg dgg dg dg dgggt j} t g dg dg dggg dg dg dgggt j}tjjdd	d
gdgdd}t g dg dg dg dg dgg dg dg dg dg dgggt j}t|| |g|gdd d S )Nr   r   r   r   r=   r>   r   r%   r?   r   r@   rA   r   r   r   r   r   r   groupr   r   r   r!   r&   r   rC   rI   r   r>   r   rQ        @Q@rS   rF   r        R@r`   ra   rO   r    rZ   rb   rr   rJ   r   rJ   rS   r#   rA   test_convtranspose_group_2r(   r,   r4   r8   r8   r9   export_convtranspose_group_2  sJ   	z*ConvTranspose.export_convtranspose_group_2c                  C  s  t g dg dg dgg dg dg dggg dg dg d	gg dg dg dggg dg dg dgg dg dg dgggt j} t g d
g d
g d
ggg d
g d
g d
gggt j}tjjdddgdgdd}t g dg dg dg dg dgg dg dg dg dg dggg dg dg dg dg dgg dg dg dg dg dggg dg dg dg dg dgg dg dg dg dg dgggt j}t|| |g|gd d! d S )"Nr   r   r   r   r   r   )rB   rC   r"   )r   rD   rE   )r$   rF   rG   r   r   r   r   r   r   r   r   r   r   r!   r&   r   r   r   r   r   )rB   rL   r[   rM   r"   )rM   g      T@rs   g      U@rP   )r^   r   rt   rv   r   )rR   g      W@ru   g      X@rT   )r$   rT   r   rV   rG   "test_convtranspose_group_2_image_3r(   r,   r4   r8   r8   r9   $export_convtranspose_group_2_image_3  s   	35
z2ConvTranspose.export_convtranspose_group_2_image_3N)r   r   )__name__
__module____qualname__staticmethodr:   r<   r   r   r   r   r   r   r   r8   r8   r8   r9   r      s(    ' C-+-r   )

__future__r   numpyr-   r1   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r8   r8   r8   r9   <module>   s   