
    
Ngt3                     <    d dl Zd dlmZ d Z G d de          ZdS )    N)OpRunc	                  !   |d | j         dd          D             }||j         dd          }|d | j         dd          D             dz  }|d | j         dd          D             }| j         d         |j         d         |z  k    s|j         d         |z  dk    rrt          d| j          d|j          d	| d
|j         d         | j         d         |z  t          j        |j         dd                    | j         d         z  |z  f d	          |dk    r&g }	d}
|j         d         |z  }|j         d         }t	          | j         d                   D ]}t	          |          D ]}| ||dz   ||z  |dz   |z  f         }|||z  |dz   |z           }	 t          ||d ||d|||	  	        }n_# t          t          f$ rK}t          d| j          d|j          d	| d| d|j          d|j          d| d| d| d| d| d          |d }~ww xY w|dk    r|
|j         d         z  }
|	                    ||f           Ռ| j         d         gt          |	d         d         j         dd                    }|
|d<   t          j	        t          |          |	d         d         j                  }d}|	D ]D\  }}||||dz   |||j         d         z   f<   ||j         d         z  }||j         d         k    rd}E|Hd |j         D             }|j         d         |d<   |                    t          |                    }||z  }|S |d         dk    s!t          |          t          |          k    rt          |          }g }t          |j         d |                    }t!          |          D ]\  }}t          |j                   |z
  |z   }|                    |j         |         |j         |         dz
  |dz
  z  z              |                    ||         ||         dz
  |dz
  z  z              t          j	        t          |          |j                  }t#          d|j         d                   t#          d|j         d                   g}t!          |          D ]N\  }}t          |j                   |z
  |z   }|                    t#          d|j         |         |                     O||t          |          <   |}|}|dv rg }g }t	          t          | j                   dz
            D ]}| j         |         }|||         z   dz
  ||         z  }|dz
  ||         z  ||         z   |z
  } |dk    r	| dz   dz  }!n| dz  }!| |!z
  }"|                    |!           |                    |"           ||z   }t          | j                   dk    r| 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         |                    d          z  cc<   t	          d|#          D ]}-t	          |j         d                   D ]}.t	          d|$          D ]}/||.|.dz   |/|/dz   f         }0t	          |+|,|'          D ]}1|1|+z
  |'z  }2|2|(k    r|1|&dz  z   }t          d||*z             t          ||*z   |&z   |%          }4}3| |-|-dz   |/|/dz   |3|4f         }5|5j         |0j         k    rt          |* |z
  d          t          |&|&|%z   ||*z   |&z   z
            }7}6|0d dd d|6|7f         }8|5j         |8j         k    r/t          d|5j          d|8j          d|* d| d|& d |% d!|' d          t          j        |5                    d"          |8                    d#                    d$         }9nAt          j        |5                    d"          |0                    d#                    d$         }9|	|-|.|2fxx         |9z  cc<   |	S t          | j                   d%k    r}| 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          }	|$|                    d&          |	d d d d d d d d f<   t	          d|#          D ]{}-t	          |j         d                   D ]\}.t	          d|$          D ]G}/||.|.dz   |/|/dz   f         }0t	          |+|,|'          D ]}1|1|+z
  |'z  }2|2|(k    r|1|&dz  z   }t          d||*z             t          ||*z   |&z   |%          }4}3t	          |@|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   |/|/dz   |3|4|E|Ff         }5|5j         |0j         k    rt          |* |z
  d          t          |&|&|%z   ||*z   |&z   z
            }7}6t          |? |Dz
  d          t          |;|;|:z   |D|?z   |;z   z
            }H}G|0d dd d|6|7|G|Hf         }8|5j         |8j         k    r>t          d|5j          d|8j          d|* d'|? d| d(|D d|& d)|; d |% d*|: d!|' d+|< d          t          j        |5                    d"          |8                    d#                    d$         }9nAt          j        |5                    d"          |0                    d#                    d$         }9|	|-|.|2|Cfxx         |9z  cc<   ɐI^}|	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          }	|'|                    d-          |	d d d d d d d d d d f<   t	          d|#          D ]M}-t	          |j         d                   D ].}.t	          d|$          D ]}/||.|.dz   |/|/dz   f         }0t	          |+|,|'          D ]}1|1|+z
  |'z  }2|2|(k    r|1|&dz  z   }t          d||*z             t          ||*z   |&z   |%          }4}3t	          |@|A|<          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 ]C}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   |/|/dz   |3|4|E|F|T|Uf         }5|5j         |0j         k    r|t          |* |z
  d          t          |&|&|%z   ||*z   |&z   z
            }7}6t          |? |Dz
  d          t          |;|;|:z   |D|?z   |;z   z
            }H}Gt          |N |Sz
  d          t          |J|J|Iz   |S|Nz   |Jz   z
            }W}V|0d dd d|6|7|G|H|V|Wf         }8|5j         |8j         k    rt          d.                    g d|5j          d|8j          d|* d'|? d/|N d| d(|D d0|S d|& d)|; d1|J d |% d*|: d2|I d!|' d+|< d3|K d                    t          j        |5                    d"          |8                    d#                    d$         }9nAt          j        |5                    d"          |0                    d#                    d$         }9|	|-|.|2|C|Rfxx         |9z  cc<   E0O|	S t          d4| j          d|j          d| d5          )6Nc                     g | ]}d S     .0ss     V/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/reference/ops/op_conv.py
<listcomp>z(_conv_implementation.<locals>.<listcomp>   s    ,,,1Q,,,       c                     g | ]}d S )r   r   r	   s     r   r   z(_conv_implementation.<locals>.<listcomp>   s    '''a'''r   c                     g | ]}d S r   r   r	   s     r   r   z(_conv_implementation.<locals>.<listcomp>   s    ***1***r   r   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=)dtypec                     g | ]}d S r   r   r	   s     r   r   z(_conv_implementation.<locals>.<listcomp>G   s    000q000r   >   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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_r   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                                                                                           r   r#   r#      sy    ,,,,,	wqrr{|''17122;'''!+**agabbk***wqzQWQZ%'''171:+=+B+Blag l l l lRW l lGAJ
e(;RWQWQRR[=Q=QUVU\]^U_=_bg=ghl l l
 
 	
 qyyWQZ5 WQZqwqz"" 	$ 	$A5\\ $ $q1q5y!b&AER<"778q2vQ",-- !$
 
BB #L1   $.!' . .QW . .^_ . .bg . .$&H. .9;. .NV. .%.. .?K. .TX. . $+. . . 
  66"(1+%B

Ar7####1$4 WQZ<$s1vayqrr':";";<		!y))QAAA 	 	EAr46E!a!e)QRXa[001!AEKN""=00EK000I71:IaL		%	**++AQJE|qC	NNc)nn<<^^2#''	i(( 	W 	WDAqQW"Q&BQWR[AGBK!OA+FFGGG##LO|A7JqSTu6U$UVVVVy))999EKN++U1ek!n-E-EFi(( 	9 	9DAqQW"Q&BNN5EKOQ778888 !eGnn'888s17||a'(( 
	" 
	"A
Awqz>A-'!*<K%/WQZ7,q/IAMJ<''&Nq0%?!H,HKK!!!KK!!!!d{
17||qW
Bb2gQ'$q'1S8A=>>!W26]SS[h
AGAJ677=111aaaLLLAIIj111LLLq" 	, 	,AAGAJ'' , ,q" , ,A"rAv+q1q5y01A#BC00 , , 2g#-;;$aK#&q!b&>>3q2v{B3G3GSAE	1q1u9c#g =>9//'*B37ABR1r6TV;@W8X8XC!"2A2rr3s7?!3B"yBH44&2%K	 %K %Krx %K %KVX %K %K)*%K %K13%K %K:<%K %KDG%K %K %K'" '" !" !#s{{7';';RZZ=P=P Q Q $!AA !#s{{7';';QYYw=O=O P P $!A Ar2I!+-,,,6 

17||qBBBSb2gQ'$q'1S8A=>>b2gQ'$q'1S8A=>>a$q'BrAvb1fBrcBeckBh
AGAJu=>>=ii66C111aaa
Oq" %	4 %	4AAGAJ'' $4 $4q" #4 #4A"rAv+q1q5y01A#BC00 !4 !4 2g#-;;$aK#&q!b&>>3q2v{B3G3GS"'B"4"4 4 4B"$r'c!1B!U{{ ( "R!VA'*1a"f~~s1r6B;7K7KC"#AAIq1q5y#c'3s7$J"KC"yAG33+.sQw??C$&R1r6B;(?=" ="S ,/sQw??C$&R1r6B;(?=" ="S &'rr2A2s3wC'?%@#&9#8#8*6)sCI )s )s28 )s )sZ\ )s )sce )s )s-.)s )s45)s )s<>)s )sEG)s )sNP)s )sWY)s )sad)s )slo)s )s )s+& +& %& %'F3;;w+?+?GATAT$U$U$(%" %'F3;;w+?+?7ASAS$T$T$(%"  2r2...!3....74!4#4$4L 

17||qW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h
AGAJueDEE=!"+;!<!<C111aaaAAAq" 3	< 3	<AAGAJ'' 2< 2<q" 1< 1<A"rAv+q1q5y01A#BC00 /< /< 2g#-;;$aK#&q!b&>>3q2v{B3G3GS"'B"4"4 )< )<B"$r'c!1B!U{{ ( "R!VA'*1a"f~~s1r6B;7K7KC&+BC&8&8 #< #<&(2g#%5#%;;$,$&aK+.q!b&>>3q2v{B;O;OS&'AE	1q1u9c#gs3wPSTWPW(W&X#&9#7#7/2B37A(*BGq2v{,CA& A&C 03B37A(*BGq2v{,CA& A&C 03B37A(*BGq2v{,CA& A&C *+2A2rr3s7CGSW+L)MB'*yBH'<'<.:-k -k -k -k -k -k	 -k -k -k -krx -k -k -k -k^` -k -k -k -kgi -k -k -k -kpr -k -k -k -k12-k -k -k -k89-k -k -k -k?@-k -k -k -kGI-k -k -k -kPR-k -k -k -kY[-k -k -k -k24-k -k -k -k;=-k -k -k -kDF-k -k -k -kNQ-k -k -k -kY\-k -k -k -kdg-k -k -k -k -k -k/* /* )*
 )+(+G(<(<bjj>Q>Q)& )& )-)&AA )+(+G(<(<aii>P>P)& )& )-)&A
 !$Ar2r2$5 6 6 6! ; 6 6 6 6G#<)</<1<2<h 

	?qw 	? 	?!' 	? 	?$	? 	? 	?  s   F&&H7AG==Hc                   $    e Zd Z	 	 	 	 	 	 	 ddZdS )ConvNc
                     t          |j                  dk     rt          d|j         d          t          |||||||||		  	                            |j                  fS )Nr   z3X must have at least 3 dimensions but its shape is r   )r,   r   r   r#   astyper   )
selfr2   r3   r4   r5   r6   r7   r8   r9   r:   s
             r   _runz	Conv._run&  sr     qw<<!PagPPP  
 !1a9e\4 fQWoo	
 	
r   )NNNNNNN)__name__
__module____qualname__r   r   r   r   r   r   %  s?        
 
 
 
 
 
 
r   r   )numpyr    onnx.reference.op_runr   r#   r   r   r   r   <module>r      sl        ' ' ' ' ' 'W W Wt
 
 
 
 
5 
 
 
 
 
r   