
     Ng                        d dl mZ d dlZd dlZd dlZd dlmZ d dlZ	d dl
ZddddZdd	d
dddddZdddZ	 	 	 	 	 	 ddZd Zedk    r e             dS dS )    )annotationsN)default_timerfloat16float32float64)ztensor(float16)ztensor(float)ztensor(double)int32int8uint8int16uint16int64uint64)ztensor(int32)ztensor(int8)ztensor(uint8)ztensor(int16)ztensor(uint16)ztensor(int64)ztensor(uint64)symbolic_dimsdict | Nonec                   i }|pi }|                                  D ]}g }|j        D ]}|s|                    d           t          |t                    rC||v r)|                    t          ||                              \|                    d           r|                    |           |j        t          v r?t          j	        j
        |                     t          |j                           ||j        <   |j        t          v r[t          j	                            dt          |                                        t          |j                           ||j        <   J|j        dk    rKt          j	                            dt          |                                        d          ||j        <   t#          d|j         d	|j                    t%          j        d
           |S )N     highsizetensor(bool)   r   boolzunsupported input type z for input )
get_inputsshapeappend
isinstancestrinttype
float_dictnprandomrandastypenameinteger_dictuniformtuplerandintprintsysexit)sessr   feeds
input_metar   dims         ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnxruntime/tools/onnxruntime_test.pygenerate_feedsr5   !   s   E!'RMoo''  
# 	" 	"C 
"QC%% "-''LL]3%7!8!89999LLOOOOS!!!!?j((%'Y^U%;%B%B:joC^%_%_E*/""_,,%'Y%6%6DuU||%6%T%T%[%[Z_-& &E*/"" _..%'Y%6%6quU||%6%L%L%S%STZ%[%[E*/""YJOYY
YYZZZHRLLLLL    r   Tc                L   |pi }|rQt          dt          j                                t          d           t          j                            d           d }|r>t          j                    }d|_        t          j	        
                    |           |_        t          j        | |t          j                              }|                                }	|st          ||          }|rh|                                D ]R}
d |
j        D             }|
j        t&          v r?t)          j        j        |                     t&          |
j                           ||
j        <   a|
j        t2          v rZt(          j                            dt7          |                                        t2          |
j                           ||
j        <   |
j        d	k    rKt(          j                            d
t7          |                                        d          ||
j        <   t          d|
j         d|
j                    t          j        d           Tt=                      }t?          |          D ]}|                     g |          }t=                      }t          d|	j!                    t          d|	j"                    t          d|            t          d||z
  dz  |z   d           |r&|#                                }t          d|            d||dk    o|fS )Nz7Pausing execution ready for debugger to attach to pid: zPress key to continue.r   T)sess_options	providersc                    g | ]}|r|nd 	S )r    ).0r3   s     r4   
<listcomp>zrun_model.<locals>.<listcomp>g   s!    DDD3C&SSQDDDr6   r   r   r   r   r   r   zunsupported initializer type z for initializer r   zmodel: z	version: ziterations: zavg latency: z msztrace file written to: r   )$r-   osgetpidr.   stdinreadonnxrtSessionOptionsenable_profilingpathbasenameprofile_file_prefixInferenceSessionget_available_providersget_modelmetar5   get_overridable_initializersr   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r/   timerrangerun
graph_nameversionend_profiling)
model_path	num_itersdebugprofiler   r1   override_initializersr8   r0   metainitializerr   start_ioutputsend
trace_files                    r4   	run_modelr^   C   s'    "'RM U	UUVVV&'''	qL H,..(,%+-7+;+;J+G+G("!022  D
 D 4t]33   <<>> 	 	KDD+2CDDDE:--*,).%*@*G*G
S^ScHd*e*ek&''!\11*,)*;*;ERWLL*;*Y*Y*`*` !12+ +k&'' !^33*,)*;*;AE%LL*;*Q*Q*X*XY_*`*`k&''kk6FkkYdYikklllGGEI & &((2u%%
''C	
%DO
%
%&&&	
$dl
$
$%%%	
$
$
$%%%	
AC%K4/9<
A
A
ABBB 6''))
4
44555eY].w..r6   c                    t          j        d          } |                     dd           |                     ddt          dd	
           |                     ddd           |                     ddd           |                     di d d           |                                 }t          |j        |j        |j        |j	        |j
                  \  }}}t          j        |           d S )NzSimple ONNX Runtime Test Tool.)descriptionrR   z
model path)helprS   ?r   z"model run iterations. default=1000)nargsr"   defaultra   z--debug
store_truez.pause execution to allow attaching a debugger.)actionra   z	--profilez'enable chrome timeline trace profiling.z--symbolic_dimsc                Z    t          d |                     d          D                       S )Nc              3  @   K   | ]}|                     d           V  dS )=N)split)r<   xs     r4   	<genexpr>z)main.<locals>.<lambda>.<locals>.<genexpr>   s,      ??QAGGCLL??????r6   ,)dictrj   )ss    r4   <lambda>zmain.<locals>.<lambda>   s'    t??!''#,,????? r6   zComma separated name=value pairs for any symbolic dimensions in the model input. e.g. --symbolic_dims batch=1,seqlen=5. If not provided, the value of 1 will be used for all symbolic dimensions.)rd   r"   ra   )argparseArgumentParseradd_argumentr!   
parse_argsr^   rR   rS   rT   rU   r   r.   r/   )parserargs	exit_code_s       r4   mainry      s    $1QRRRF
<888
1     =    
 L?hiii
??T	     DT\[_[mnnOIq!HYr6   __main__)N)r   r   )r   NNNNT)
__future__r   rq   r>   r.   timeitr   rL   numpyr$   onnxruntimerB   r#   r)   r5   r^   ry   __name__r;   r6   r4   <module>r      s  
 # " " " " "  				 



 ) ) ) ) ) )         ! 
      H 

?/ ?/ ?/ ?/D  < zDFFFFF r6   