
    bIg                        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	 d dl
Z
d dlZ
d dlZ
d dlZ
d dlZ
d Zd Z G d dej"                        Zedk(  r ej(                  d	       yy)
    )annotationsNc                    t         j                  j                  dt         j                  j                  d d g      } t         j                  j                  dt         j                  j                  d g      }t         j                  j                  t         j                  j                  dddgdg      t         j                  j                  dddgdg      t         j                  j                  dddgdg      gd	| g|gt         j                  j                  t        j                  d
      j                  t        j                        j                  d      d      t         j                  j                  t        j                  d
      dz  j                  t        j                        j                  d      d      t         j                  j                  t        j                  d
      dz   j                  t        j                        j                  d      d      g      }t         j                  j                  |      }t         j                  j!                  |       |S )NXYMatMulAXABXBCmm	      named   
   )onnxhelpermake_tensor_value_infoTensorProtoFLOAT
make_graph	make_nodenumpy_helper
from_arraynparangeastypefloat32reshape
make_modelcheckercheck_model)r   r   graph
onnx_models       c/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/test/model_container_refeval_test.py_linear_regressionr*      s   **30@0@0F0FtUA**30@0@0F0FOAKK""KK!!(S#J?KK!!(T3K$@KK!!(T3K#?	

 		
	
((		!##BJJ/77@s )  ((1#++BJJ7??H )  ((1"**2::6>>wG ) 	
E. ''.JLLZ(    c                 n   t         j                  j                  dt         j                  j                  d d g      } t         j                  j                  dt         j                  j                  d g      }t         j                  j                  t         j                  j                  dddgdg      t         j                  j                  dddgdg      t         j                  j                  dddgdg      gd	| g|gt         j                  j                  d
dt         j                  j                  d      t         j                  j                  t        j                  d      j                  t        j                        j                  d      d      t         j                  j                  ddt         j                  j                  d      g      }t         j                  j!                  |      }t         j                  j#                  |j$                  t        j                  d      dz  j                  t        j                        j                  d      t        j                  d      dz   j                  t        j                        j                  d      d      }|j'                          |S )Nr   r   r   r   r	   r
   r   r   r   #loc0)r   r   r   r   r   #loc1r   r   )r-   r.   )r   r   r   r   r   r   r   model_containermake_large_tensor_protor   r   r   r    r!   r"   r#   r$   make_large_modelr'   r&   )r   r   r'   r(   large_models        r)   _large_linear_regressionr3   3   s	   **30@0@0F0FtUA**30@0@0F0FOAKK""KK!!(S#J?KK!!(T3K$@KK!!(T3K#?	

 		
	
  88d..44f ((		!##BJJ/77@s )    88d..44f
	
E* ''.J&&77iilS(00<DDWMiilR'//

;CCGL	
K r+   c                  $    e Zd Zd Zd Zd Zd Zy)TestLargeOnnxReferenceEvaluatorc                z   t        j                  d      j                  t         j                        j	                  d      }t
        j                  j                  |      }|j                  d d|i      }t        j                  g dg dg dgt         j                        }t        j                  ||d          y )	Nr   r   r   )ihk i} i؏ )ipT, i0/ i2 )ix=J iO iHU )dtyper   )r   r    r!   r"   r#   r   	referenceReferenceEvaluatorrunarraynptassert_allclose)self	containerr   refgotexpecteds         r)    common_check_reference_evaluatorz@TestLargeOnnxReferenceEvaluator.common_check_reference_evaluatorX   s    IIaL

+33G<nn//	:ggdS!H%88*++
 **
 	Hc!f-r+   c                   t               }t        j                  j                  |j                        }| j                  |       | j                  t              5  |d    d d d        t        j                         5 }t        j                  j                  |d      }|j                  |       t        j                  j                         }|j                  |       | j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz#anymissingkey
model.onnx)r*   r   r/   r1   r'   rC   assertRaises
ValueErrortempfileTemporaryDirectoryospathjoinsaveModelContainerload)r>   model_protor2   tempfilenamecopys         r)   $test_large_onnx_no_large_initializerzDTestLargeOnnxReferenceEvaluator.test_large_onnx_no_large_initializerf   s    (***;;K<M<MN--k:z* 	*()	* ((* 	8dww||D,7HX&''668DIIh11$7	8 	8	* 	*	8 	8s   C7<A2D7D Dc                   t               }| j                  |       t        j                         5 }t        j
                  j                  |d      }|j                  |d       t        j                  j                         }|j                  |       t        j                  |d      }| j                  |       d d d        y # 1 sw Y   y xY w)NrE   Tload_external_data)r3   rC   rH   rI   rJ   rK   rL   rM   r   r/   rN   rO   
load_modelr>   r2   rQ   rR   rS   loaded_models         r)   test_large_one_weight_filez:TestLargeOnnxReferenceEvaluator.test_large_one_weight_filet   s    .0--k:((* 	@dww||D,7HXt,''668DIIh??8ML11,?	@ 	@ 	@s   B
CCc                   t               }| j                  |       t        j                         5 }t        j
                  j                  |d      }|j                  |d       t        j                  |      }| j                  |       t        j                  |d      }| j                  |       d d d        y # 1 sw Y   y xY w)NrE   FTrV   )
r3   rC   rH   rI   rJ   rK   rL   rM   r   rX   rY   s         r)   test_large_multi_filesz6TestLargeOnnxReferenceEvaluator.test_large_multi_files   s    .0--k:((* 	@dww||D,7HXu-??8,D11$7??8ML11,?	@ 	@ 	@s   BB::CN)__name__
__module____qualname__rC   rT   r[   r]    r+   r)   r5   r5   W   s    .8	@	@r+   r5   __main__   )	verbosity)
__future__r   rJ   rH   unittestnumpyr   numpy.testingtestingr<   r   onnx.helperonnx.model_containeronnx.numpy_helperonnx.referencer*   r3   TestCaser5   r^   mainra   r+   r)   <module>rp      se    # 	         >!H1@h&7&7 1@h zHMMA r+   