
    
Ng                     :    d dl mZ d dlmZ  G d de          ZdS )    )OpRunExperimental)im2col_fastc                       e Zd ZddZdS )Im2ColNc                 N   |d |j         dd          D             }|d |j         dd          D             dz  }|d |j         dd          D             }t          |          t          |          cxk    rdk    r1n n.t          |t	          |dd                    ||          d         fS |d         dk    s t          |          t          |          k    rt          |          }g }t          |          }t          |          D ]t\  }	}
t          |          |z
  |	z   }|                    ||         ||         dz
  |
dz
  z  z              |                    ||	         ||	         dz
  |
dz
  z  z              u|}t          |t	          |dd                    ||          fS )Nc                     g | ]}d S     .0ss     e/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/reference/ops/experimental/op_im2col.py
<listcomp>zIm2Col._run.<locals>.<listcomp>   s    222q222       c                     g | ]}d S )r   r   r   s     r   r   zIm2Col._run.<locals>.<listcomp>   s    ---!A---r   c                     g | ]}d S r	   r   r   s     r   r   zIm2Col._run.<locals>.<listcomp>   s    000Qq000r   r
   r   )	shapeminmaxr   tuplelenlist	enumerateappend)selfimgkernel_shape	dilationspadsstridesndnew_kernel_shape	new_shapeiddis               r   _runzIm2Col._run   s   22CIabbM222I<--sy}---1D?00#)ABB-000Gy>>S^^0000q00000U<+;%<%<dGLLQOQQQ<1I#i.. @ @YB!\**I!),,  1&&+a/  b!1\"5E5IaRSe4T!TUUU '' O|A':q1u&EE    ,LC|ABB'7!8!8$HHJJr   )NNN)__name__
__module____qualname__r)   r   r   r   r   r   
   s.        K K K K K Kr   r   N)4onnx.reference.ops.experimental._op_run_experimentalr   .onnx.reference.ops_optimized.op_conv_optimizedr   r   r   r   r   <module>r/      sk    S R R R R R F F F F F FK K K K K K K K K Kr   