
    khw              "           d dl mZmZmZ d dlZd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddej                  j                  dedeej                     de
de
d	e
d
e
dedeeeef   dee   de
de
dee
   de
dee   dee   f dZy)    )OptionalTupleListNc                     dd l }|j                         }|j                  | |      }|j                         d   j                  }|j                  g ||j                         i      }|d   }|S )Nr   )onnxruntimeSessionOptionsInferenceSession
get_inputsnamerunnumpy)	onnx_fileexample_inputr   sess_optionssession
input_nameoutputs          K/var/www/teggl/fontify/venv/lib/python3.12/site-packages/timm/utils/onnx.pyonnx_forwardr      sj    --/L**9lCG##%a(--J[[j-*=*=*?@AFAYFM    modeloutput_filer   trainingverbosecheckcheck_forward
batch_size
input_sizeopsetdynamic_sizeaten_fallbackkeep_initializers
use_dynamoinput_namesoutput_namesc                    dd l }|r5t        j                   j                  j                  }| j	                          n4t        j                   j                  j
                  }| j                          |K|s.t        | d      sJ d       | j                  j                  d      }t        j                  |f|z   |      }t        j                         5   | |      }d d d        |xs dg}|xs dg}ddiddid	}|
rd
|d   d<   d|d   d<   |r%t        j                   j                  j                  }n$t        j                   j                  j                  }|rTt        j                   j                  |
      }t        j                   j!                  | ||      }|j#                  |       n+t        j                   j%                  | |||d||||||	|       |rq|j'                  |      }|j(                  j+                  |d       |r@|s=dd l}t/        ||      }|j0                  j3                  j-                         |d       y y y y # 1 sw Y   sxY w)Nr   default_cfgz=Cannot file model default config, input size must be providedr   )requires_gradinput0output0batch)r)   r*   height   width   )dynamic_shapes)export_optionsT)	r   export_paramsr   r$   r%   keep_initializers_as_inputsdynamic_axesopset_versionoperator_export_type)
full_check)decimal)onnxtorchTrainingModeTRAININGtrainEVALevalhasattrr'   getrandnno_gradOperatorExportTypesONNX_ATEN_FALLBACKONNXExportOptionsdynamo_exportsaveexportloadcheckercheck_modelr   r   testingassert_almost_equal)r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r9   training_modeoriginal_outr4   export_typer1   export_output
onnx_modelnponnx_outs                             r   onnx_exportrW      s+   $ 

//88

//44

5-0q2qq0**..|<JZMJ$>hW 
 ,]+, +(K.I;L 'l7|DL$,Xq!$+Xq!jj44GGjj4499111N

00) 1 

 	;'

"#%(9%!, 	 	
 YY{+
   =#K?HJJ**<+=+=+?ST*U "*= Q, ,s   	II)NFFTF@   NNFFNFNN)typingr   r   r   r:   r   nnModulestrTensorboolintrW    r   r   <module>ra      s.   ( (  15#+/#"#,0 !%"&!VVxxVVVV  -VV 	VV
 VV VV VV VV #sC-(VV }VV VV VV $D>VV VV #YVV  3i!VVr   