o
    Xi	                     @  sH   d dl mZ d dlZd dlZd dlZd dlmZ dd
dZdddZ	dS )    )annotationsN)helperqual_model_dirstrinput_names	list[str]return.tuple[dict[str, np.ndarray], list[np.ndarray]]c              	     sf  t | d }i  g }|dD ]9}t|jtdd  }|| }t }t|d}|	|
  W d    n1 s<w   Y  tj| |< qt|d}	d gt|	 }|dD ]5}t|jtdd  }t }
t|d}|
	|
  W d    n1 sw   Y  tj|
||< q]t fdd|D sJ d	td
d |D rJ d |fS )Ntest_data_set_0z
input_*.pbinput_rbzoutput_*.pboutput_c                 3  s    | ]}| v V  qd S N ).0nameinputsr   U/home/ubuntu/.local/lib/python3.10/site-packages/onnxscript/utils/evaluation_utils.py	<genexpr>#       z!load_test_data.<locals>.<genexpr>zSome inputs are missing.c                 s  s    | ]}|d u V  qd S r   r   )r   outputr   r   r   r   $   r   zSome outputs are missing.)pathlibPathglobintstemlenonnxTensorProtoopenParseFromStringreadnumpy_helperto_arraylistallany)r   r   test_data_direxpected_outputs	test_dataidx
input_name
input_datafoutput_file_pathsoutput_datar   r   r   load_test_data   s.   r1   modelonnx.ModelProtodict[str, np.ndarray]c                 C  s   i }t | jjD ]K\}}dd |jjjjD }t|jjj	}|du r-t
d|jjj	 |tjtjtjfv rFtjj| |d ||j< qtjjdd||d||j< q|S )	zGenerate random input for the model.

    NOTE: This is unused. There is parity issue with randomly generated data. Need investigation.
    c                 S  s   g | ]}|j qS r   )	dim_value)r   dr   r   r   
<listcomp>0   s    z)generate_random_input.<locals>.<listcomp>NzUnsupported dtype: g      ?   d   )sizedtype)	enumerategraphinputtypetensor_typeshapedimonnx_helpertensor_dtype_to_np_dtype	elem_type
ValueErrornpfloat16float32float64randomrandastyper   randint)r2   r   _r>   rA   np_dtyper   r   r   generate_random_input)   s   rQ   )r   r   r   r   r   r	   )r2   r3   r   r4   )

__future__r   r   numpyrG   r   r   rC   r1   rQ   r   r   r   r   <module>   s   
