
    
Ng-8                       U d dl mZ d dlZd dlZd dlmZ d dlZd dlmZ d dl	Z
d dlZ
d dlZ
d dlZ
d dl	mZmZ 	 d dlZ eej                  Zn# e$ r dZded<   dZded<   Y nw xY w G d	 d
e
j        j        j                  Zd$dZ G d de
j        j        j                  Zee
j        j                            ee          Z  ej!                    d          dk    re "                    d            ej#                    dk    re "                    d           e "                    d           e "                    d           e "                    d           e "                    d           e "                    d           e "                    d           e "                    d           e$e ed          k     re "                    d           e$e ed          k     re "                    d            e$e ed!          k     re "                    d"            e$            %                    e j&                   ed#k    r ej'                     dS dS )%    )annotationsN)Any)Version)Device
DeviceTyper   ortort_versionc                      e Zd Zd Zd ZdS )InferenceSessionBackendRepc                    || _         d S N)_session)selfsessions     ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/test/test_backend_onnxruntime.py__init__z#InferenceSessionBackendRep.__init__"   s        c                   ~t          |t          j                  r|g}t          |t                    rd | j                                        D             }d | j                                        D             }t          |          t          |          k    rt          t          ||                    }ni }d}t          ||          D ];\  }}|||         j	        k    r%||         ||<   |dz  }|t          |          k    r n<n8t          |t                    r|}n t          dt          |          d          | j                            d |          }	|	S )Nc                    g | ]	}|j         
S  )name.0is     r   
<listcomp>z2InferenceSessionBackendRep.run.<locals>.<listcomp>*   s    FFFa16FFFr   c                    g | ]	}|j         
S r   )shaper   s     r   r   z2InferenceSessionBackendRep.run.<locals>.<listcomp>+   s    HHHAGHHHr   r      zUnexpected input type .)
isinstancenumpyndarraylistr   
get_inputslendictzipr   	TypeErrortyperun)
r   inputskwargsinput_namesinput_shapesfeeds
pos_inputsinpr   outss
             r   r*   zInferenceSessionBackendRep.run%   sf   fem,, 	XFfd## 	HFF4=+C+C+E+EFFFKHHT]-E-E-G-GHHHL6{{c+....Sf5566
"%k<"@"@ " "JCz 2 888%+J%7c
"a
%V44!E%% 	HEEFT&\\FFFGGG}  u--r   N)__name__
__module____qualname__r   r*   r   r   r   r   r   !   s2                 r   r   modelonnx.ModelProtodevicestrc                (   |dk    rd}n|dk    rd}nt          d|d          	 t          j        |                                 |          }nB# t          $ r5}t          dt          j                            |                      |d }~ww xY w|S )	NCPU)CPUExecutionProviderCUDA)CUDAExecutionProviderzUnexpected device r   )	providersz/Unable to create inference session. Model is:

)	
ValueErrorr   InferenceSessionSerializeToString	ExceptionRuntimeErroronnxprinterto_text)r6   r8   r?   r   es        r   _create_inference_sessionrI   ?   s    -			6		.		9f999:::&u'>'>'@'@IVVV   ]@T@TUZ@[@[]]
 
	 Ns   (A 
B0B

Bc                  ~     e Zd Zedd            Ze	 ddd            Zedd fd            Zedd            Z xZS )InferenceSessionBackendr8   r9   returnboolc                    t          t          j                              }t          |          }|j        t
          j        k    rd|v rdS |j        t
          j        k    rd|v rdS dS )Nr<   Tr>   F)setr   get_available_providersr   r)   r   r;   r=   )clsr8   r?   ds       r   supports_devicez'InferenceSessionBackend.supports_deviceP   sf    35566	6NN6Z^##(>)(K(K46Z_$$)@I)M)M4ur   r;   r6   r7   r,   r   r   c                    ~t          |t          t          t          j        f          s t          dt          |           d          t          ||          }t          |          S )NzUnexpected type z for model.)	r    r9   bytesrE   
ModelProtor(   r)   rI   r   )rQ   r6   r8   r,   r   s        r   preparezInferenceSessionBackend.prepareZ   s`     %#udo!>?? 	IGtE{{GGGHHH+E6::)'222r   Nc                >     t                      j        ||fd|i|S )Nr8   )super	run_model)rQ   r6   r+   r8   r,   	__class__s        r   rZ   z!InferenceSessionBackend.run_modele   s)     uww HHvHHHHr   c                     t          d          )Nz%Unable to run the model node by node.)NotImplementedError)rQ   noder+   r8   outputs_infor,   s         r   run_nodez InferenceSessionBackend.run_nodei   s    !"IJJJr   )r8   r9   rL   rM   )r;   )r6   r7   r8   r9   r,   r   rL   r   r   )r6   r7   )NN)	r3   r4   r5   classmethodrS   rW   rZ   r`   __classcell__)r[   s   @r   rK   rK   O   s           [ 383 3 3 3 [3 I I I I I I [I K K K [K K K K Kr   rK   32bitz)(test_vgg19|test_zfnet|test_bvlc_alexnet)Windowstest_sequence_modelz(test_bernoulli)a  (test_adagrad|test_adam|test_add_uint8|bitshift_left_uint16|bitshift_right_uint16|cast_BFLOAT16_to_FLOAT|cast_FLOAT_to_BFLOAT16|castlike_BFLOAT16_to_FLOAT|castlike_FLOAT_to_BFLOAT16|clip_default_int8_min_expanded|clip_default_int8_max_expanded|div_uint8|gru_batchwise|loop16_seq_none|lstm_batchwise|m(in|ax)_u?int(16|8)|momentum|mul_uint8|pow_types_float32_uint32|pow_types_float32_uint64|simple_rnn_batchwise|sub_uint8|gradient_of_add|test_batchnorm_epsilon_training_mode|test_batchnorm_example_training_mode|_to_FLOAT8E4M3FN|_to_FLOAT8E5M2|cast_FLOAT8E|castlike_FLOAT8E|test_dequantizelinear_axis|test_dequantizelinear|test_quantizelinear_axis|test_quantizelinear|test_affine_grid_|test_quantizelinear_uint4|test_quantizelinear_int4|test_dequantizelinear_uint4|test_dequantizelinear_int4|test_cast_UINT4_to_FLOAT|test_cast_INT4_to_FLOAT|test_cast_UINT4_to_FLOAT16|test_cast_INT4_to_FLOAT16|test_maxpool_2d_ceil_output_size_reduce_by_one)z(test_cast_|test_castlike_|test_constant|test_edge_pad_cpu|test_flatten_|test_identity|test_reflect_pad|test_reshape_|test_shape_|test_size_|test_squeeze_|test_transpose_|test_unsqueeze_|test_wrap_pad_)z4(cast_FLOAT_to_STRING|castlike_FLOAT_to_STRING|stft)zm(resize_downsample_scales_cubic_align_corners|resize_downsample_scales_linear_align_corners|training_dropout)z(test_reduce_sum_empty_set|test_reduce_prod_empty_set|test_reduce_min_empty_set|test_reduce_max_empty_set|test_reduce_sum_square_empty_set|test_reduce_log_sum_empty_set|test_reduce_log_sum_exp_empty_set|test_reduce_l1_empty_set|test_reduce_l2_empty_set)aR  (maxunpool_export_with_output_shape|softplus_example_expanded|softplus_expanded|AvgPool[1-3]d|BatchNorm1d_3d_input_eval|BatchNorm[2-3]d_eval|GLU|Linear|PReLU|PoissonNLL|Softsign|operator_add_broadcast|operator_add_size1|operator_addconstant|operator_addmm|operator_basic|operator_mm|operator_non_float_params|operator_params|operator_pow)z1.16z(averagepool|_pad_|_resize_|_size_|cast|castlike|equal_string_broadcast|equal_string|equal|half_pixel_symmetric|identity|reshape)z1.17a{  (deform_conv|dequantizelinear_uint16|dequantizelinear_int16|quantizelinear_uint16|quantizelinear_int16|dft|gelu|gridsample|group_normalization|identity_opt|image_decoder|isinf_float16|label_encoder|optional_get_element_optional_sequence|qlinearmatmul_2D_int8|qlinearmatmul_2D_uint8_float16|qlinearmatmul_3D_int8|qlinearmatmul_3D_uint8_float16|reduce_max_bool_inputs|reduce_min_bool_inputs|regex_full_match|string_concat|string_split|constantofshape_float_ones|constantofshape_int_shape_zero|constantofshape_int_zeros|isinf|isinf_negative|isinf_positive|isnan|isnan_float16|qlinearmatmul_2D_uint8_float32|qlinearmatmul_3D_uint8_float32)z1.18a  (deform_conv|dft|group_normalization|identity_opt|image_decoder|optional_get_element_optional_sequence|qlinearmatmul_2D_int8|qlinearmatmul_2D_uint8_float16|qlinearmatmul_3D_int8|qlinearmatmul_3D_uint8_float16|qlinearmatmul_2D_uint8_float32|qlinearmatmul_3D_uint8_float32|tree_ensemble)__main__)r6   r7   r8   r9   )(
__future__r   platformunittesttypingr   r!   packaging.versionr   onnx.backend.baserE   onnx.backend.testonnx.shape_inferenceonnx.version_converterr   r   onnxruntimer   __version__r	   ImportError__annotations__backendbase
BackendRepr   rI   BackendrK   testBackendTestr3   backend_testarchitectureexcludesystemglobalsupdate
test_casesmainr   r   r   <module>r      s  
 # " " " " " "          % % % % % %                 0 0 0 0 0 0 0 0'#/**KK   COOOOK    !2!=   <    K K K K Kdl/7 K K K> ?<$001H(SSLxq!W,,HIIIxI%%2333 +,,, ,	. . .d 	  ( OPPP 	   
	   	  4 ;#@#@	
 	
 	
  ;#@#@"$	
 $	
 $	
J ;#@#@ 		
 	
 	
& GII\,--- zHMOOOOO s   A A$#A$