
    bIgi                       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 G d	 d
e
j,                  j.                  j0                        Zd"dZ G d de
j,                  j.                  j6                        Zee
j,                  j:                  j=                  ee      Z  ejB                         d    dk(  re jE                  d        ejF                         dk(  re jE                  d       e jE                  d       e jE                  d       e jE                  d       e jE                  d       e jE                  d       e jE                  d       e jE                  d       ee ed      k  re jE                  d       ee ed      k  re jE                  d       ee ed      k  re jE                  d       ee ed      k  re jE                  d         e$       jK                  e jL                         ed!k(  r ejN                          yy# e$ r dZded<   dZded<   Y 	w xY w)#    )annotationsN)Any)Version)Device
DeviceTyper   ortort_versionc                      e Zd Zd Zd Zy)InferenceSessionBackendRepc                    || _         y N)_session)selfsessions     _/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/test/test_backend_onnxruntime.py__init__z#InferenceSessionBackendRep.__init__"   s	        c                   ~t        |t        j                        r|g}t        |t              r| j                  j                         D cg c]  }|j                   }}| j                  j                         D cg c]  }|j                   }}t        |      t        |      k(  rt        t        ||            }nti }d}t        ||      D ]5  \  }}	|	||   j                  k(  s||   ||<   |dz  }|t        |      k\  s5 n- n+t        |t              r|}nt        dt        |      d      | j                  j                  d |      }
|
S c c}w c c}w )Nr      zUnexpected input type .)
isinstancenumpyndarraylistr   
get_inputsnameshapelendictzip	TypeErrortyperun)r   inputskwargsiinput_namesinput_shapesfeeds
pos_inputsinpr   outss              r   r#   zInferenceSessionBackendRep.run%   s:   femm,XFfd#+/==+C+C+EFa166FKF-1]]-E-E-GHAGGHLH6{c+..Sf56
"%k<"@ "JCz 2 8 88%+J%7c
"a
%V4!" %E4T&\4DAFGG}}  u-% GHs   E<EN)__name__
__module____qualname__r   r#    r   r   r   r   !   s     r   r   c                
   |dk(  rd}n|dk(  rd}nt        d|d      	 t        j                  | j                         |      }|S # t        $ r1}t        dt        j                  j                  |              |d }~ww xY w)	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)modeldevicer6   r   es        r   _create_inference_sessionrB   ?   s    -		6	.	-fZq9::&&u'>'>'@IV
 N	  ?@T@TUZ@[?\]
	s   %A 	B,A==Bc                  t     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 )InferenceSessionBackendc                    t        t        j                               }t        |      }|j                  t
        j                  k(  rd|v ry|j                  t
        j                  k(  rd|v ryy)Nr3   Tr5   F)setr   get_available_providersr   r"   r   r2   r4   )clsr@   r6   ds       r   supports_devicez'InferenceSessionBackend.supports_deviceP   sW    3356	6N66Z^^#(>)(K66Z__$)@I)Mr   c                    ~t        |t        t        t        j                  f      st        dt        |       d      t        ||      }t        |      S )NzUnexpected type z for model.)	r   strbytesr<   
ModelProtor!   r"   rB   r   )rH   r?   r@   r%   r   s        r   preparezInferenceSessionBackend.prepareZ   sL     %#udoo!>?.tE{m;GHH+E6:)'22r   c                *    t        |   ||fd|i|S )Nr@   )super	run_model)rH   r?   r$   r@   r%   	__class__s        r   rR   z!InferenceSessionBackend.run_modele   s    w HvHHHr   c                    t        d      )Nz%Unable to run the model node by node.)NotImplementedError)rH   noder$   r@   outputs_infor%   s         r   run_nodez InferenceSessionBackend.run_nodei   s    !"IJJr   )r@   rL   returnbool)r2   )r?   onnx.ModelProtor@   rL   r%   r   rY   r   r   )r?   r[   )NN)	r-   r.   r/   classmethodrJ   rO   rR   rX   __classcell__)rS   s   @r   rD   rD   O   sx      383#3-03DG3	#3 3 I I K Kr   rD   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)a&  (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_|test_acos_cpu|test_acos_example_cpu|test_acosh_cpu|test_acosh_example_cpu|test_asin_cpu|test_asin_example_cpu|test_asinh_cpu|test_asinh_example_cpu|test_atan_cpu|test_atan_example_cpu|test_atanh_cpu|test_atanh_example_cpu|test_averagepool_1d_default_cpu|test_averagepool_2d_ceil_cpu|test_averagepool_2d_default_cpu|test_averagepool_2d_dilations_cpu|test_averagepool_2d_pads_count_include_pad_cpu|test_averagepool_2d_pads_cpu|test_averagepool_2d_precomputed_pads_count_include_pad_cpu|test_averagepool_2d_precomputed_pads_cpu|test_averagepool_2d_precomputed_same_upper_cpu|test_averagepool_2d_precomputed_strides_cpu|test_averagepool_2d_same_lower_cpu|test_averagepool_2d_same_upper_cpu|test_averagepool_2d_strides_cpu|test_averagepool_3d_default_cpu|test_averagepool_3d_dilations_large_count_include_pad_is_0_ceil_mode_is_False_cpu|test_averagepool_3d_dilations_large_count_include_pad_is_0_ceil_mode_is_True_cpu|test_averagepool_3d_dilations_large_count_include_pad_is_1_ceil_mode_is_False_cpu|test_averagepool_3d_dilations_large_count_include_pad_is_1_ceil_mode_is_True_cpu|test_averagepool_3d_dilations_small_cpu|test_basic_conv_with_padding_cpu|test_basic_conv_without_padding_cpu|test_conv_with_autopad_same_cpu|test_conv_with_strides_and_asymmetric_padding_cpu|test_conv_with_strides_no_padding_cpu|test_conv_with_strides_padding_cpu|test_convtranspose_1d_cpu|test_convtranspose_3d_cpu|test_convtranspose_autopad_same_cpu|test_convtranspose_cpu|test_convtranspose_dilations_cpu|test_convtranspose_kernel_shape_cpu|test_convtranspose_output_shape_cpu|test_convtranspose_pad_cpu|test_convtranspose_pads_cpu|test_cos_cpu|test_cos_example_cpu|test_cosh_cpu|test_cosh_example_cpu|test_det_2d_cpu|test_det_nd_cpu|test_dropout_default_cpu|test_dropout_default_mask_cpu|test_dropout_default_mask_ratio_cpu|test_dropout_default_ratio_cpu|test_elu_cpu|test_elu_default_cpu|test_elu_example_cpu|test_eyelike_populate_off_main_diagonal_cpu|test_eyelike_with_dtype_cpu|test_eyelike_without_dtype_cpu|test_globalaveragepool_cpu|test_globalaveragepool_precomputed_cpu|test_gridsample_aligncorners_true_cpu|test_gridsample_bicubic_align_corners_0_additional_1_cpu|test_gridsample_bicubic_align_corners_1_additional_1_cpu|test_gridsample_bicubic_cpu|test_gridsample_bilinear_align_corners_0_additional_1_cpu|test_gridsample_bilinear_align_corners_1_additional_1_cpu|test_gridsample_bilinear_cpu|test_gridsample_border_padding_cpu|test_gridsample_cpu|test_gridsample_nearest_align_corners_0_additional_1_cpu|test_gridsample_nearest_align_corners_1_additional_1_cpu|test_gridsample_nearest_cpu|test_gridsample_reflection_padding_cpu|test_gridsample_volumetric_bilinear_align_corners_0_cpu|test_gridsample_volumetric_bilinear_align_corners_1_cpu|test_gridsample_volumetric_nearest_align_corners_0_cpu|test_gridsample_volumetric_nearest_align_corners_1_cpu|test_gridsample_zeros_padding_cpu|test_gru_defaults_cpu|test_gru_seq_length_cpu|test_gru_with_initial_bias_cpu|test_hardsigmoid_cpu|test_hardsigmoid_default_cpu|test_hardsigmoid_example_cpu|test_hardswish_cpu|test_hardswish_expanded_cpu|test_lppool_1d_default_cpu|test_lppool_2d_default_cpu|test_lppool_2d_dilations_cpu|test_lppool_2d_pads_cpu|test_lppool_2d_same_lower_cpu|test_lppool_2d_same_upper_cpu|test_lppool_2d_strides_cpu|test_lppool_3d_default_cpu|test_lstm_defaults_cpu|test_lstm_with_initial_bias_cpu|test_lstm_with_peepholes_cpu|test_maxpool_1d_default_cpu|test_maxpool_2d_ceil_cpu|test_maxpool_2d_default_cpu|test_maxpool_2d_dilations_cpu|test_maxpool_2d_pads_cpu|test_maxpool_2d_precomputed_pads_cpu|test_maxpool_2d_precomputed_same_upper_cpu|test_maxpool_2d_precomputed_strides_cpu|test_maxpool_2d_same_lower_cpu|test_maxpool_2d_same_upper_cpu|test_maxpool_2d_strides_cpu|test_maxpool_2d_uint8_cpu|test_maxpool_3d_default_cpu|test_maxpool_3d_dilations_cpu|test_maxpool_3d_dilations_use_ref_impl_cpu|test_maxpool_3d_dilations_use_ref_impl_large_cpu|test_maxpool_with_argmax_2d_precomputed_pads_cpu|test_maxpool_with_argmax_2d_precomputed_strides_cpu|test_maxunpool_export_without_output_shape_cpu|test_mish_cpu|test_mish_expanded_cpu|test_nllloss_NC_cpu|test_nllloss_NC_expanded_cpu|test_nllloss_NCd1_cpu|test_nllloss_NCd1_expanded_cpu|test_nllloss_NCd1_ii_cpu|test_nllloss_NCd1_ii_expanded_cpu|test_nllloss_NCd1_mean_weight_negative_ii_cpu|test_nllloss_NCd1_mean_weight_negative_ii_expanded_cpu|test_nllloss_NCd1_weight_cpu|test_nllloss_NCd1_weight_expanded_cpu|test_nllloss_NCd1_weight_ii_cpu|test_nllloss_NCd1_weight_ii_expanded_cpu|test_nllloss_NCd1d2_cpu|test_nllloss_NCd1d2_expanded_cpu|test_nllloss_NCd1d2_no_weight_reduction_mean_ii_cpu|test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded_cpu|test_nllloss_NCd1d2_reduction_mean_cpu|test_nllloss_NCd1d2_reduction_mean_expanded_cpu|test_nllloss_NCd1d2_reduction_sum_cpu|test_nllloss_NCd1d2_reduction_sum_expanded_cpu|test_nllloss_NCd1d2_with_weight_cpu|test_nllloss_NCd1d2_with_weight_expanded_cpu|test_nllloss_NCd1d2_with_weight_reduction_mean_cpu|test_nllloss_NCd1d2_with_weight_reduction_mean_expanded_cpu|test_nllloss_NCd1d2_with_weight_reduction_sum_cpu|test_nllloss_NCd1d2_with_weight_reduction_sum_expanded_cpu|test_nllloss_NCd1d2_with_weight_reduction_sum_ii_cpu|test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded_cpu|test_nllloss_NCd1d2d3_none_no_weight_negative_ii_cpu|test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded_cpu|test_nllloss_NCd1d2d3_sum_weight_high_ii_cpu|test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded_cpu|test_nllloss_NCd1d2d3d4d5_mean_weight_cpu|test_nllloss_NCd1d2d3d4d5_mean_weight_expanded_cpu|test_nllloss_NCd1d2d3d4d5_none_no_weight_cpu|test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded_cpu|test_rnn_seq_length_cpu|test_roialign_aligned_false_cpu|test_roialign_aligned_true_cpu|test_roialign_mode_max_cpu|test_round_cpu|test_selu_cpu|test_selu_default_cpu|test_selu_example_cpu|test_simple_rnn_defaults_cpu|test_simple_rnn_with_initial_bias_cpu|test_sin_cpu|test_sin_example_cpu|test_sinh_cpu|test_sinh_example_cpu|test_softplus_cpu|test_softplus_example_cpu|test_softsign_cpu|test_softsign_example_cpu|test_tan_cpu|test_tan_example_cpu|test_thresholdedrelu_cpu|test_thresholdedrelu_default_cpu|test_thresholdedrelu_example_cpu|test_resize_downsample_scales_cubic_A_n0p5_exclude_outside_cpu|test_resize_downsample_scales_cubic_antialias_cpu|test_resize_downsample_scales_cubic_cpu|test_resize_downsample_scales_linear_antialias_cpu|test_resize_downsample_scales_linear_cpu|test_resize_downsample_scales_linear_half_pixel_symmetric_cpu|test_resize_downsample_scales_nearest_cpu|test_resize_downsample_sizes_cubic_antialias_cpu|test_resize_downsample_sizes_cubic_cpu|test_resize_downsample_sizes_linear_antialias_cpu|test_resize_downsample_sizes_linear_pytorch_half_pixel_cpu|test_resize_downsample_sizes_nearest_cpu|test_resize_downsample_sizes_nearest_not_larger_cpu|test_resize_downsample_sizes_nearest_not_smaller_cpu|test_resize_tf_crop_and_resize_axes_2_3_cpu|test_resize_tf_crop_and_resize_axes_3_2_cpu|test_resize_tf_crop_and_resize_cpu|test_resize_upsample_scales_cubic_A_n0p5_exclude_outside_cpu|test_resize_upsample_scales_cubic_align_corners_cpu|test_resize_upsample_scales_cubic_asymmetric_cpu|test_resize_upsample_scales_cubic_cpu|test_resize_upsample_scales_linear_align_corners_cpu|test_resize_upsample_scales_linear_cpu|test_resize_upsample_scales_linear_half_pixel_symmetric_cpu|test_resize_upsample_scales_nearest_axes_2_3_cpu|test_resize_upsample_scales_nearest_axes_3_2_cpu|test_resize_upsample_scales_nearest_cpu|test_resize_upsample_sizes_cubic_cpu|test_resize_upsample_sizes_nearest_axes_2_3_cpu|test_resize_upsample_sizes_nearest_axes_3_2_cpu|test_resize_upsample_sizes_nearest_ceil_half_pixel_cpu|test_resize_upsample_sizes_nearest_cpu|test_resize_upsample_sizes_nearest_floor_align_corners_cpu|test_resize_upsample_sizes_nearest_not_larger_cpu|test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric_cpu|test_qlinearmatmul_2D_uint8_float32_cuda|test_qlinearmatmul_2D_int8_float32_cpu|test_image_decoder_decode_jpeg_rgb_cpu|test_basic_deform_conv_without_padding_cuda|test_qlinearmatmul_3D_int8_float16_cuda|test_image_decoder_decode_bmp_rgb_cuda|test_qlinearmatmul_2D_uint8_float16_cpu|test_image_decoder_decode_jpeg2k_rgb_cuda|test_image_decoder_decode_jpeg_bgr_cuda|test_qlinearmatmul_3D_uint8_float32_cpu|test_qlinearmatmul_3D_uint8_float16_cuda|test_deform_conv_with_mask_bias_cpu|test_qlinearmatmul_2D_int8_float16_cuda|test_image_decoder_decode_jpeg_grayscale_cpu|test_basic_deform_conv_without_padding_cpu|test_qlinearmatmul_3D_int8_float32_cuda|test_qlinearmatmul_3D_int8_float16_cpu|test_qlinearmatmul_2D_int8_float32_cuda|test_deform_conv_with_mask_bias_cuda|test_image_decoder_decode_tiff_rgb_cuda|test_image_decoder_decode_jpeg2k_rgb_cpu|test_image_decoder_decode_jpeg_rgb_cuda|test_image_decoder_decode_jpeg_grayscale_cuda|test_qlinearmatmul_3D_uint8_float32_cuda|test_image_decoder_decode_png_rgb_cpu|test_image_decoder_decode_png_rgb_cuda|test_image_decoder_decode_bmp_rgb_cpu|test_qlinearmatmul_3D_uint8_float16_cpu|test_deform_conv_with_multiple_offset_groups_cuda|test_image_decoder_decode_webp_rgb_cpu|test_basic_deform_conv_with_padding_cpu|test_qlinearmatmul_2D_uint8_float16_cuda|test_image_decoder_decode_webp_rgb_cuda|test_basic_deform_conv_with_padding_cuda|test_image_decoder_decode_pnm_rgb_cpu|test_qlinearmatmul_3D_int8_float32_cpu|test_image_decoder_decode_jpeg_bgr_cpu|test_qlinearmatmul_2D_int8_float16_cpu|test_image_decoder_decode_pnm_rgb_cuda|test_deform_conv_with_multiple_offset_groups_cpu|test_qlinearmatmul_2D_uint8_float32_cpu|test_image_decoder_decode_tiff_rgb_cpu|test_globalmaxpool_cpu|test_globalmaxpool_precomputed_cpu|test_instancenorm_example_cpu|test_instancenorm_epsilon_cpu)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|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)z1.20zR(tree_ensemble_set_membership|tree_ensemble_single_tree|convtranspose_group_2|dft)__main__)r?   r[   r@   rL   )(
__future__r   platformunittesttypingr   r   packaging.versionr   onnx.backend.baser<   onnx.backend.testonnx.shape_inferenceonnx.version_converterr   r   onnxruntimer   __version__r	   ImportError__annotations__backendbase
BackendRepr   rB   BackendrD   testBackendTestr-   backend_testarchitectureexcludesystemglobalsupdate
test_casesmainr0   r   r   <module>r}      si  
 #     %     0#//*K!2!2!=!= < Kdll//77 K> ?<<$$001H(SLxq!W,HIxI%23 +, ,	.d U	Wt OP 	 
	 	4 ;#@	
  ;#@"$	
J ;#@ 		
" ;#@	
 I\,,- zHMMO }  COKs   I II