o
    pi
                     @   sJ   d dl Zd dlZd dlmZmZmZ d dlm	Z	 e	j
ddddd ZdS )	    N)add_1D_constant_layercast_tensorset_layer_name)converter_registryzpd_op.one_hotztrt_version_ge=8.5.1)Ztrt_versionc                 C   s:  |\}}|j }tjjtji}||d }|| }|tjkr%ddg}tj}	n|tjkr2ddg}tj}	ntd| t	| ||	|
 dgd}
t|tjrb| | d  j|}t|| |d}| |}t|| d|_|d}t| |tj|
 dgd}| j||
|d	d
}t|| |d| |d}|gS )Nr      z#Unsupported trt_dtype for one_hot: values_tensor)dtypename depth_tensor)r	   )Zaxis)r   trtZDataTypeZINT32Zint32getnpZint64
ValueErrorr   r	   
isinstanceZWeightsZadd_constantZoperandssourceshaper   Z
get_outputZadd_shuffleZreshape_dimsr   Zadd_one_hotZset_output_type)networkZ	paddle_opZinputsZinput_tensorZnum_classes_tensorZ
input_typeZtrt_dtype_mapZ	trt_dtypeZvalues_dataZnp_dtyper   Zreshape_layerr   Zone_hot_layerZoutput_tensorr
   r
   b/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/paddle/tensorrt/impls/input.pyone_hot_converter   sT   











r   )numpyr   Ztensorrtr   Zpaddle.tensorrt.converter_utilsr   r   r   Zpaddle.tensorrt.registerr   registerr   r
   r
   r
   r   <module>   s   