
    
Ng                         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 )	    Nc                     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       Z/var/www/html/ai-engine/env/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_regressionr2   1   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.   r0   r%   ModelContainertempfileTemporaryDirectoryospathjoinsaveassertRaisesRuntimeErrormodel_protoloadr#   r$   )selfrB   r1   tempfilenamecopys         r'   $test_large_onnx_no_large_initializerz2TestLargeOnnx.test_large_onnx_no_large_initializerV   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 )Nr6   Tload_external_data)r2   r7   r   r.   r9   r:   r;   r<   r=   r>   r?   r8   rC   r$   
load_modelr#   )rD   r1   rE   rF   saved_protorG   loaded_models          r'   test_large_one_weight_filez(TestLargeOnnx.test_large_one_weight_filee   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 )Nr6   Fr   location   TrJ   )r2   r7   r   r.   r9   r:   r;   r<   r=   r>   r?   r8   rL   r#   r$   ext_data_get_all_tensorsuses_external_dataexternal_datakeyexistsvalueassertEqual)
rD   r1   rE   rF   rM   rG   tensortestedextrN   s
             r'   test_large_multi_filesz$TestLargeOnnx.test_large_multi_filesr   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__rH   rO   r^    r)   r'   r4   r4   U   sA        7 7 73 3 33 3 3 3 3r)   r4   __main__   )	verbosity)r<   r:   unittestnumpyr   r   onnx.external_data_helperexternal_data_helperrS   onnx.helperonnx.model_containeronnx.numpy_helperr(   r2   TestCaser4   r_   mainrb   r)   r'   <module>ro      s   
 
			        , , , , , ,              >! ! !H/3 /3 /3 /3 /3H% /3 /3 /3d zHMA r)   