
     Ng:                     ^    d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 defdZdefdZd	S )
    )NumpyHelper)
ModelProtoTensorProto)set_external_data)	OnnxModel)OrtValuemodelc                    g }t          |           }|                                D ]}|j        D ]}|j        }|                    d          rlt          j        |          }t          j        |          }|	                    ||f           t          |d           ||_        |                    d           t          | S )a  
    Extract external data from model and return the external data as a list of tuples (name, value).
    Note this function does not handle external data that is not loaded into the model as raw data.

    Args:
        model (ModelProto): the model proto to extract external data from.
    Returns:
        (external_names, external_values): a tuple of two lists of external data names and values.
    raw_datazfoo.bin)location)r   graphsinitializernameHasFieldr   to_arrayr   ortvalue_from_numpyappendr   
ClearFieldzip)r	   external_data
onnx_modelgraphr   r   numpy_tensor	ort_values           _/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnxruntime/transformers/onnx_utils.pyextract_raw_data_from_modelr      s     M5!!J""$$ 3 3 , 
	3 
	3K#D##J// 3*3K@@$8FF	$$dI%6777!+	BBBB#' &&z222
	3     c                     t          |           }|                                D ]:}|j        D ]0}|                    d          r|j        t
          j        k    r  dS 1;dS )z
    Check if the model has external data.

    Args:
        model (ModelProto): the model proto to check for external data.
    Returns:
        bool: True if the model has external data, False otherwise.
    data_locationTF)r   r   r   r   r   r   EXTERNAL)r	   r   r   r   s       r   has_external_datar!   )   s{     5!!J""$$   , 	 	K##O44 9RVaVj9j9jttt	 5r   N)fusion_utilsr   onnxr   r   onnx.external_data_helperr   r   r   onnxruntimer   r   r!    r   r   <module>r'      s   
 % $ $ $ $ $ ( ( ( ( ( ( ( ( 7 7 7 7 7 7                        z    8Z      r   