
    wi!                        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 dlm	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	           dS dS )
    )annotationsNc                    t           j                            dt           j        j        d d g          } t           j                            dt           j        j        d g          }t           j                            t           j                            dddgdg          t           j                            dddgdg          t           j                            dddgdg          gd	| g|gt           j                            t          j
        d
                              t          j                                      d          d          t           j                            t          j
        d
          dz                      t          j                                      d          d          t           j                            t          j
        d
          dz                      t          j                                      d          d          g          }t           j                            |          }t           j                            |           |S )NXYMatMulAXABXBCmm	      name
   )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       n/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/onnx/test/model_container_test.py_linear_regressionr)      s   **30@0FtUUA**30@0FOOAK""K!!(S#J??K!!(T3K$@@K!!(T3K#??	

 		
	
((	!##BJ//77@@s )   ((1"**2:66>>wGG )   ((1"**2:66>>wGG )  	
 E. ''..JLZ(((    c                 6   t           j                            dt           j        j        d d g          } t           j                            dt           j        j        d g          }t           j                            t           j                            dddgdg          t           j                            dddgdg          t           j                            dddgdg          gd	| g|gt           j                            d
dt           j        j        d          t           j	        
                    t          j        d                              t          j                                      d          d          t           j                            ddt           j        j        d          g          }t           j                            |          }t           j                            |j        t          j        d          dz                      t          j                                      d          t          j        d          dz                       t          j                                      d          d          }|                                 |S )Nr   r   r   r   r	   r
   r   r   r   #loc0)r   r   r   r   r   #loc1d   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   2   s   **30@0FtUUA**30@0FOOAK""K!!(S#J??K!!(T3K$@@K!!(T3K#??	

 		
	
 88d.4f  ((	!##BJ//77@@s )    88d.4f 
	
 E* ''..J&77illS(00<<DDWMMillR'//
;;CCGLL	
 	
 K r*   c                       e Zd Zd Zd Zd ZdS )TestLargeOnnxc                   t                      }t          |t          j                  sJ t          j                            |j                  }t          |t          j        j                  sJ t          j	                    5 }t          j                            |d          }|                    |           t          j                                        }|                     t                    5  |j        sJ 	 d d d            n# 1 swxY w Y   |                    |           |j        J t          j                            |j                   d d d            d S # 1 swxY w Y   d S )N
model.onnx)r)   
isinstancer   
ModelProtor/   r1   r&   ModelContainertempfileTemporaryDirectoryospathjoinsaveassertRaisesRuntimeErrormodel_protoloadr$   r%   )selfrC   r2   tempfilenamecopys         r(   $test_large_onnx_no_large_initializerz2TestLargeOnnx.test_large_onnx_no_large_initializerW   s   (**+t77777*;;K<MNN+t';'JKKKKK(** 	7dw||D,77HX&&&'6688D""<00 ( ('''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (IIh#///L$$T%5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s8   A.E"1
D<E"D	E"D	AE""E&)E&c                X   t                      }t          |t          j        j                  sJ t          j                    5 }t          j        	                    |d          }|
                    |d          }t          |t          j                  sJ t          j                                        }|                    |           |                                 t          j        |d          }t          j                            |           d d d            d S # 1 swxY w Y   d S )Nr7   Tload_external_data)r3   r8   r   r/   r:   r;   r<   r=   r>   r?   r@   r9   rD   r%   
load_modelr$   )rE   r2   rF   rG   saved_protorH   loaded_models          r(   test_large_one_weight_filez(TestLargeOnnx.test_large_one_weight_filef   s=   .00+t';'JKKKKK(** 	3dw||D,77H%**8T::Kk4?;;;;;'6688DIIh?8MMMLL$$\222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   CDD#&D#c                6   t                      }t          |t          j        j                  sJ t          j                    5 }t          j        	                    |d          }|
                    |d          }t          |t          j                  sJ t          j        |          }t          j                            |           t          j        |          D ]n}t          j        |          rXd}|j        D ]8}|j        dk    r+t          j                            |j                  sJ |dz  }9|                     |d           ot          j        |d          }	t          j                            |	           d d d            d S # 1 swxY w Y   d S )Nr7   Fr   location   TrK   )r3   r8   r   r/   r:   r;   r<   r=   r>   r?   r@   r9   rM   r$   r%   ext_data_get_all_tensorsuses_external_dataexternal_datakeyexistsvalueassertEqual)
rE   r2   rF   rG   rN   rH   tensortestedextrO   s
             r(   test_large_multi_filesz$TestLargeOnnx.test_large_multi_filess   s   .00+t';'JKKKKK(** 	3dw||D,77H%**8U;;Kk4?;;;;;?8,,DL$$T***"3D99 0 0.v66 0F%3 ( (7j00#%7>>#)#<#<<<#<"aKF$$VQ///?8MMMLL$$\222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   D>FFFN)__name__
__module____qualname__rI   rP   r_    r*   r(   r5   r5   V   sA        7 7 73 3 33 3 3 3 3r*   r5   __main__   )	verbosity)
__future__r   r=   r;   unittestnumpyr   r   onnx.external_data_helperexternal_data_helperrT   onnx.helperonnx.model_containeronnx.numpy_helperr)   r3   TestCaser5   r`   mainrc   r*   r(   <module>rq      s    # " " " " " 				        , , , , , ,              >! ! !H/3 /3 /3 /3 /3H% /3 /3 /3d zHMA r*   