
    h                         S SK r S SKrS SKr " S S5      r " S S\5      r " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r	 " S S5      r
g)    Nc                        \ rS rSrS rS rSrg)
BaseObject   c                     0 U l         g N
customizedselfs    Z/var/www/fran/franai/venv/lib/python3.13/site-packages/onnxruntime/transformers/metrics.py__init__BaseObject.__init__   s	        c                 |   U R                   R                  5       nUR                  SS 5        UR                  U R                  5        UR                  5        H.  u  p#[        U[        5      (       d  M  UR                  5       X'   M0     UR                  5        VVs0 s H  u  p#U(       d  M  X#_M     snn$ s  snnf )Nr	   )	__dict__copypopupdater	   items
isinstancer   to_dict)r   default_valueskvs       r   r   BaseObject.to_dict   s    ++-<.doo."((*DA!Z(($%IIK! + "0!5!5!7=!71!7===s   B8.B8r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r   r      s    	>r   r   c            
       `   ^  \ rS rSr    S	S\S-  S\S-  S\S-  S\S-  4U 4S jjjrSrU =r$ )
	ModelInfo   N	full_nameis_huggingfaceis_text_generation
short_namec                 `   > [         TU ]  5         Xl        X l        X0l        X@l        / U l        g r   )superr   r%   r&   r'   r(   input_shape)r   r%   r&   r'   r(   	__class__s        r   r   ModelInfo.__init__   s.     	","4$r   )r%   r+   r&   r'   r(   )NFFN)	r   r   r   r   strboolr   r    __classcell__r,   s   @r   r#   r#      sQ     !%&+*/!%: t !4K	
 $J r   r#   c                   T   ^  \ rS rSr   SS\S-  S\S-  S\S-  4U 4S jjjrSrU =r$ )	BackendOptions-   Nenable_profilingexecution_provideruse_io_bindingc                 F   > [         TU ]  5         Xl        X l        X0l        g r   )r*   r   r5   r6   r7   )r   r5   r6   r7   r,   s       r   r   BackendOptions.__init__.   s"     	 0"4,r   )r5   r6   r7   )FNF)	r   r   r   r   r/   r.   r   r    r0   r1   s   @r   r3   r3   -   s@     ).)-&+		-+	-  $J	- t		- 	-r   r3   c                   x   ^  \ rS rSr      SS\S-  S\S-  S\S-  S\S-  S\S-  S\S-  4U 4S	 jjjrS
rU =r$ )Config:   backendN
batch_size
seq_length	precisionwarmup_runsmeasured_runsc                    > [         TU ]  5         Xl        X l        X0l        X@l        XPl        X`l        [        5       U l	        [        5       U l        g r   )r*   r   r=   r>   r?   r@   rA   rB   r#   
model_infor3   backend_options)r   r=   r>   r?   r@   rA   rB   r,   s          r   r   Config.__init__;   sD     	$$"&*#+-/r   )r=   rE   r>   rB   rD   r@   r?   rA   )onnxruntime   r   fp32rH   
   )	r   r   r   r   r.   intr   r    r0   r1   s   @r   r;   r;   :   ss     ,!"!" &"#$&0t0 $J0 $J	0
 :0 4Z0 Tz0 0r   r;   c                   l   ^  \ rS rSr     S
S\S-  S\S-  S\S-  S\S-  S\S-  4
U 4S jjjrS	rU =r$ )MetadataO   Ndevicepackage_namepackage_versionplatformpython_versionc                 ^   > [         TU ]  5         Xl        X l        X0l        X@l        XPl        g r   )r*   r   rO   rP   rQ   rR   rS   )r   rO   rP   rQ   rR   rS   r,   s         r   r   Metadata.__init__P   s,     	(. ,r   )rO   rP   rQ   rR   rS   )NNNNN)r   r   r   r   r.   r   r    r0   r1   s   @r   rM   rM   O   sb     "#'&*#%)-d
- Dj- t	-
 *- d
- -r   rM   c                   T   ^  \ rS rSr   SS\S-  S\S-  S\S-  4U 4S jjjrSrU =r$ )	Metrics`   latency_ms_meanNthroughput_qpsmax_memory_usage_GBc                 F   > [         TU ]  5         Xl        X l        X0l        g r   )r*   r   rY   rZ   r[   )r   rY   rZ   r[   r,   s       r   r   Metrics.__init__a   s"     	.,#6 r   )rY   r[   rZ   )        r^   r^   )r   r   r   r   floatr   r    r0   r1   s   @r   rW   rW   `   s@     ),'*,/		7	7 	7 #T\		7 	7r   rW   c                       \ rS rSr    SS\S\S\S\S\S\S	\S-  S
\S-  S\S-  S\S-  4S jjrS\4S jrS\4S jr	\
S\S\SS4S j5       r\
S\S\SS4S j5       rSrg)BenchmarkRecordm   N
model_namer@   r=   rO   rP   rQ   r>   rA   rB   trigger_datec                    [        5       U l        [        5       U l        [	        5       U l        U
=(       d-    [        R                  R                  5       R                  S5      U l	        XR                  R                  l        X R                  l        X0R                  l        XpR                  l        XR                  l        XR                  l        X@R
                  l        XPR
                  l        X`R
                  l        g )Nz%Y-%m-%d %H:%M:%S)r;   configrW   metricsrM   metadatadatetimenowstrftimerd   rD   r%   r@   r=   r>   rA   rB   rO   rP   rQ   )r   rc   r@   r=   rO   rP   rQ   r>   rA   rB   rd   s              r   r   BenchmarkRecord.__init__n   s     hy 
(aH,=,=,A,A,C,L,LM`,a+5( )%!+"-$1!%%1"(7%r   returnc                     U R                   R                  5       U R                  R                  5       U R                  R                  5       U R                  S.$ )Nrf   rh   rg   rd   )rf   r   rh   rg   rd   r
   s    r   r   BenchmarkRecord.to_dict   sE    kk))+--/||++- --	
 	
r   c                 P    [         R                  " U R                  5       [        S9$ )N)default)jsondumpsr   r.   r
   s    r   to_jsonBenchmarkRecord.to_json   s    zz$,,.#66r   	file_namerecordsc                     Ub  [        U5      S:X  a  g U Vs/ s H  o3R                  5       PM     nn[        R                  " U5      nUR	                  USS9  g s  snf )Nr   F)index)lenr   pdjson_normalizeto_csv)clsrw   rx   recordrdsdfs         r   save_as_csvBenchmarkRecord.save_as_csv   sS    ?c'la/.56gF~~g6s#
		)5	) 7s   Ac                     Ub  [        U5      S:X  a  g U Vs/ s H  o3R                  5       PM     nn[        US5       n[        R                  " XES[
        S9  S S S 5        g s  snf ! , (       d  f       g = f)Nr   w   )indentrr   )r{   r   openrs   dumpr.   )r   rw   rx   r   r   fs         r   save_as_jsonBenchmarkRecord.save_as_json   s^    ?c'la/.56gF~~g6)S!QIIcQ4 "! 7!!s   A#A((
A6ro   )rH   rH   rJ   N)r   r   r   r   r.   rK   r   dictr   ru   classmethodlistr   r   r    r!   r   r   ra   ra   m   s     "#"#$&#'88 8 	8
 8 8 8 $J8 4Z8 Tz8 Dj88
 
7 7 *C *$ *4 * * 5S 54 5D 5 5r   ra   )ri   rs   pandasr|   r   r#   r3   r;   rM   rW   ra   r!   r   r   <module>r      s`      > > 
  
-Z 
-0Z 0*-z -"
7j 
765 65r   