
    bIgS4                    @    d dl mZ d dlZd dlmZ d Z G d de      Zy)    )annotationsN)OpRunc	                    || j                   dd  D 	cg c]  }	d }}	||j                   dd  }| | j                   dd  D 	cg c]  }	d c}	dz  }|| j                   dd  D 	cg c]  }	d }}	| j                   d   |j                   d   |z  k7  s|j                   d   |z  dk7  rt        d| j                    d|j                    d| d|j                   d   | j                   d   |z  t        j                  |j                   dd        | j                   d   z  |z  f d	      |dkD  rg }
d}|j                   d   |z  }|j                   d   }t	        | j                   d         D ]u  }t	        |      D ]e  }| ||dz   ||z  |dz   |z  f   }|||z  |dz   |z   }	 t        ||d ||d|||	      }|dk(  r||j                   d   z  }|
j                  ||f       g w | j                   d   gt        |
d   d   j                   dd        }||d<   t        j                  t        |      |
d   d   j                        }d}|
D ]J  \  }}||||dz   |||j                   d   z   f<   ||j                   d   z  }||j                   d   k\  sId}L |J|j                   D 	cg c]  }	d }}	|j                   d   |d<   |j                  t        |            }||z  }|S |d   dk7  st        |      t        |      k7  rst        |      }g }t        |j                   d |        }t!        |      D ]z  \  }}t        |j                         |z
  |z   }|j                  |j                   |   |j                   |   dz
  |dz
  z  z          |j                  ||   ||   dz
  |dz
  z  z          | t        j                  t        |      |j                        }t#        d|j                   d         t#        d|j                   d         g}t!        |      D ]I  \  }}t        |j                         |z
  |z   }|j                  t#        d|j                   |   |             K ||t        |      <   |}|}|dv rg }g }t	        t        | j                         dz
        D ]p  }| j                   |   }|||   z   dz
  ||   z  } | dz
  ||   z  ||   z   |z
  }!|dk(  r	|!dz   dz  }"n|!dz  }"|!|"z
  }#|j                  |"       |j                  |#       r ||z   }t        | j                         dk(  rw| j                   \  }$}%}&|\  }'|\  }(t%        |&|'z
  |d   z   |d   z   |(z  dz         })|d   }*d|'dz  z  }+|* },|)|(z  }-t        j                  | j                   d   |j                   d   |)f      }
|%|
d d d d d d fxx   |j                  d      z  cc<   t	        |$      D ]  }.t	        |j                   d         D ]  }/t	        |%      D ]  }0||/|/dz   |0|0dz   f   }1t	        |,|-|(      D ]j  }2|2|,z
  |(z  }3|3|)k\  r|2|'dz  z   }t        d||+z         t        ||+z   |'z   |&      }5}4| |.|.dz   |0|0dz   |4|5f   }6|6j                   |1j                   k7  rt        |+ |z
  d      t        |'|'|&z   ||+z   |'z   z
        }8}7|1d dd d|7|8f   }9|6j                   |9j                   k7  r5t        d|6j                    d|9j                    d|+ d| d|' d|& d|( d      t        j&                  |6j                  d      |9j                  d            d    }	n7t        j&                  |6j                  d      |1j                  d            d    }	|
|.|/|3fxx   |	z  cc<   m    |
S t        | j                         d!k(  r4| j                   \  }$}%}&}:|\  }'};|\  }(}<t%        |&|'z
  |d   z   |d   z   |(z  dz         })t%        |:|;z
  |d   z   |d   z   |<z  dz         }=|d   |d   }>}*d|'dz  z  d|;dz  z  }?}+|* |> }@},|)|(z  |=|<z  }A}-t        j                  | j                   d   |j                   d   |)|=f      }
| |j                  d"      |
d d d d d d d d f<   t	        |$      D ]I  }.t	        |j                   d         D ]*  }/t	        |%      D ]  }0||/|/dz   |0|0dz   f   }1t	        |,|-|(      D ]  }2|2|,z
  |(z  }3|3|)k\  r|2|'dz  z   }t        d||+z         t        ||+z   |'z   |&      }5}4t	        @A|<      D ]  }B|B@z
  |<z  }C|C|=k\  rB|;dz  z   }Dt        d|D|?z         t        |D|?z   |;z   |:      }F}E| |.|.dz   |0|0dz   |4|5|E|Ff   }6|6j                   |1j                   k7  rt        |+ |z
  d      t        |'|'|&z   ||+z   |'z   z
        }8}7t        |? Dz
  d      t        |;|;|:z   |D|?z   |;z   z
        }H}G|1d dd d|7|8|G|Hf   }9|6j                   |9j                   k7  rDt        d|6j                    d|9j                    d|+ d#|? d| d$D d|' d%|; d|& d&|: d|( d'|< d      t        j&                  |6j                  d      |9j                  d            d    }	n7t        j&                  |6j                  d      |1j                  d            d    }	|
|.|/|3Cfxx   |	z  cc<      - L |
S t        | j                         d(k(  r,| j                   \  }$}%}&}:}I|\  }'};}J|\  }(}<}Kt%        |&|'z
  |d   z   |d   z   |(z  dz         })t%        |:|;z
  |d   z   |d!   z   |<z  dz         }=t%        |I|Jz
  |d   z   |d(   z   |Kz  dz         }L|d   |d   |d   }M}>}*d|'dz  z  d|;dz  z  d|Jdz  z  }N}?}+|* |> |M }O}@},|)|(z  |=|<z  |L|Kz  }P}A}-t        j                  | j                   d   |j                   d   |)|=|Lf      }
|#|j                  d)      |
d d d d d d d d d d f<   t	        |$      D ]  }.t	        |j                   d         D ]  }/t	        |%      D ]  }0||/|/dz   |0|0dz   f   }1t	        |,|-|(      D ]  }2|2|,z
  |(z  }3|3|)k\  r|2|'dz  z   }t        d||+z         t        ||+z   |'z   |&      }5}4t	        @A|<      D ]d  }B|B@z
  |<z  }C|C|=k\  rB|;dz  z   }Dt        d|D|?z         t        |D|?z   |;z   |:      }F}Et	        OPK      D ]  }Q|QOz
  Kz  }R|RLk\  rQJdz  z   }St        d|SNz         t        |S|Nz   |Jz   I      }U}T| |.|.dz   |0|0dz   |4|5EF|T|Uf   }6|6j                   |1j                   k7  rbt        |+ |z
  d      t        |'|'|&z   ||+z   |'z   z
        }8}7t        |? Dz
  d      t        |;|;|:z   |D|?z   |;z   z
        }H}Gt        N Sz
  d      t        J|JIz   |S|Nz   |Jz   z
        }W}V|1d dd d|7|8|G|H|V|Wf   }9|6j                   |9j                   k7  rt        d*j)                  g d|6j                    d|9j                    d|+ d#|? d+N d| d$D d,S d|' d%|; d-J d|& d&|: d.I d|( d'|< d/K d            t        j&                  |6j                  d      |9j                  d            d    }	n7t        j&                  |6j                  d      |1j                  d            d    }	|
|.|/|3CRfxx   |	z  cc<    g     |
S t        d0| j                    d|j                    d| d1      c c}	w c c}	w c c}	w # t        t        f$ r[}t        d| j                    d|j                    d| d	| d
|j                    d|j                    d| d| d| d| d| d      |d }~ww xY wc c}	w )2N      r   zShape inconsistencies, X.shape=z
, W.shape=z, group=z, W should be ./z, gx.shape=z, gw.shape=z, auto_pad=z, dilations=z, kernel_shape=z, pads=z
, strides=)dtype>   VALID
SAME_LOWER
SAME_UPPERr      )r   r   r   zUnexpected shape z != z, oh=z, i=z, kh=z, sH=z, sth=)r   r   )r   r   )r   r      )r   r   r   r   z, ow=z, j=z, kw=z, sW=z, stw=   )r   r   r   r   r    z, oz=z, z=z, kz=z, sZ=z, stz=zThe convolution for X.shape=z is not implemented yet.)shape
ValueErrornpprodrange_conv_implementationRuntimeErrorappendlistzerostupler
   reshapeminmaxlen	enumeratesliceintdotjoin)XXWBauto_pad	dilationsgroupkernel_shapepadsstridessrestdmgdwbggxgwcve	new_shapefinalpndnew_kernel_shapeiddinew_windicesheadtailtarget_size
pad_neededpad_headpad_tailsNsCsHkhsthh_outh0ohbhehnnwcwiohrih1ih2imgjh1jh2w_sWkwstww_outw0owbwewjowrjiw1iw2jw1jw2sZkzstzz_outz0ozbzezzozrziz1iz2jz1jz2sX                                                                                           W/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/reference/ops/op_conv.pyr   r      sB     !,1Q,	,wwqr{|7712;'a'!+ggabk*1**wwqzQWWQZ%''1771:+=+B-aggYj	RWQX YGGAJ
e(;RWWQWWQR[=QUVU\U\]^U_=_bg=ghiijl
 	
 qyWWQZ5 WWQZqwwqz" 	$A5\ $q1q5y!b&AER<"778q2vQ"-- !$
B$ 6"((1+%B

Ar7#1$	$6 WWQZ<$s1vayqr':";<		!y)QA 	EAr46E!a!e)QRXXa[001!AEKKN"		
 =$)KK0q0I0771:IaL		%	*+AQJE|qC	Nc)n<^2#'	i( 	WDAqQWW"Q&BQWWR[AGGBK!OA+FFG##LO|A7JqSTu6U$UV	W y)9EKKN+U1ekk!n-EFi( 	9DAqQWW"Q&BNN5EKKOQ78	9 !"eGn'88s177|a'( 
	"A
Awqz>A-'!*<K%/WQZ7,q/IAMJ<'&Nq0%?!H,HKK!KK!
	" d{
177|qWW
Bb2gQ'$q'1S8A=>!W26]SS[hh
AGGAJ67=1aLAIIj11Lr 	,AAGGAJ' ,r ,A"rAv+q1q5y01A#BC0 , 2g#-;$aK#&q!b&>3q2v{B3GSAE	1q1u9c#g =>99/'*B37ABR1r6TV;@W8XC!"2A2rr3s7?!3B"yyBHH4&2&7		{$rxxjPUVXUY Z))*5E"VC5%K'" !" !#s{{7';RZZ=P Q $!A !#s{{7';QYYw=O P $!A Ar2I!+-,,,	,8 

177|qBBBSb2gQ'$q'1S8A=>b2gQ'$q'1S8A=>a$q'BrAvb1fBrcBeckBhh
AGGAJu=>=ii6C1a
Or '	4AAGGAJ' &4r %4A"rAv+q1q5y01A#BC0 #4 2g#-;$aK#&q!b&>3q2v{B3GS"'B"4 4B"$r'c!1B!U{ ( "R!VA'*1a"f~s1r6B;7KC"#AAIq1q5y#c'3s7$J"KC"yyAGG3$'aO$'BGq2v{,C$D &)
 %(aO$'BGq2v{,C$D &) &'rr2A2s3wC'?%@#&99#8*6*;CII;d288*TYZ\Y]]bcebf g--.CtA3eB4uRDbTQVWYVZZ`ad`eeklokppq)s+& %& %'FF3;;w+?GAT$U$(%" %'FF3;;w+?7AS$T$(%"  2r2.!3.;4#4%4&4'	4R 

177|qWWBB!
BS#b2gQ'$q'1S8A=>b2gQ'$q'1S8A=>b2gQ'$q'1S8A=>!Wd1gtAwB26]B"q&M2a=BS2#sBS[%#+us{Bhh
AGGAJueDE=!"+;!<C1aAr 6	<AAGGAJ' 5<r 4<A"rAv+q1q5y01A#BC0 2< 2g#-;$aK#&q!b&>3q2v{B3GS"'B"4 ,<B"$r'c!1B!U{ ( "R!VA'*1a"f~s1r6B;7KC&+BC&8 &<&(2g#%5#%;$,$&aK+.q!b&>3q2v{B;OS&'AE	1q1u9c#gs3wPSTWPW(W&X#&99#7(+RC!GQ(+BR1r6B;0G(H *-C
 ),RC!GQ(+BR1r6B;0G(H *-C
 ),RC!GQ(+BR1r6B;0G(H *-C *+2A2rr3s7CGSW+L)MB'*yyBHH'<.:-k -k.? -k		{ -k$ -krxxj -kX] -k^`]a -kaf -kgifj -kjo -kpros -k t1 -k12-k37-k89s-k:>-k?@c-kAF-kGId-kJO-kPRt-kSX-kY[X\-k]2-k24-k5:-k;=$-k>C-kDF4-kGM-kNQU-kRX-kY\X]-k]c-kdgch-khi-k/* )*
 )+(+G(<bjj>Q)& )-)&A )+(+G(<aii>P)& )-)&A
 !$Ar2r2$5 6! ; 6M&<,<2<4<5<6	<p 


&qwwiz!'' C$~%=	? k - (*: #L1 $9!''*QWWIU]^_]``abgah i$$&HH:[
+hZ X%%.K|nGTXSY Z##*)1.
 * 1s0   	}"	}'%	}, }1%	1 Ac                  "    e Zd Z	 	 	 	 	 	 	 ddZy)ConvNc
                    t        |j                        dk  rt        d|j                   d      t        |||||||||		      j	                  |j
                        fS )Nr   z3X must have at least 3 dimensions but its shape is r   )r!   r   r   r   astyper
   )
selfr'   r(   r)   r*   r+   r,   r-   r.   r/   s
             r   _runz	Conv._run+  se     qww<!EaggYaP 
 !1a9e\4fQWWo	
 	
    )NNNNNNN)__name__
__module____qualname__r    r   r   r   r   *  s    
 
r   r   )
__future__r   numpyr   onnx.reference.op_runr   r   r   r   r   r   <module>r      s#    #  '\~
5 
r   