
    ~j                         d dl mZ ddlmZ ddlmZ ddlmZmZm	Z	m
Z
mZ ddZ G d d	          Z G d
 de          Z G d de          ZdS )    )deepcopy   )create_predictor)PaddlePredictorOption)build_dataset_checkerbuild_evaluatorbuild_exportorbuild_trainerbuild_weight_converterNc                      t          || |d|S )N)
model_name	model_dir)_ModelBasedInference)r   r   argskwargss       ]/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddlex/model.pycreate_modelr      s(    59: =C      c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )

_BaseModelc                      t          d          )Nzcheck_dataset is not supported!	Exceptionselfr   r   s      r   check_datasetz_BaseModel.check_dataset$   s    9:::r   c                      t          d          )Nztrain is not supported!r   r   s      r   trainz_BaseModel.train'   s    1222r   c                      t          d          )Nzevaluate is not supported!r   r   s      r   evaluatez_BaseModel.evaluate*   s    4555r   c                      t          d          )Nzexport is not supported!r   r   s      r   exportz_BaseModel.export-   s    2333r   c                      t          d          )Nz&pdparams2safetensors is not supported!r   r   s      r   pdparams2safetensorsz_BaseModel.pdparams2safetensors0   s    @AAAr   c                      t          d          )Nzpredict is not supported!r   r   s      r   predictz_BaseModel.predict3   s    3444r   c                      t          d          )Nzset_predict is not supported!r   r   s      r   set_predictz_BaseModel.set_predict6   s    7888r   c              /   0   K    | j         |i |E d {V  d S N)r&   r   s      r   __call__z_BaseModel.__call__9   s5      4<000000000000r   N)__name__
__module____qualname__r   r   r    r"   r$   r&   r(   r+    r   r   r   r   #   s        ; ; ;3 3 36 6 64 4 4B B B5 5 59 9 91 1 1 1 1r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )r   c                 (    t          |i || _        d S r*   )r   
_predictorr   s      r   __init__z_ModelBasedInference.__init__>   s    *D;F;;r   c              /   0   K    | j         |i |E d {V  d S r*   )r2   r   s      r   r&   z_ModelBasedInference.predictA   s5      "4?D3F33333333333r   c                 *     | j         j        di | d S Nr/   )r2   set_predictor)r   r   s     r   r7   z"_ModelBasedInference.set_predictorD   s#    %%///////r   c                     t          | j        |          rt          | j        |          S t          d| j        j         d| d          )N'z' object has no attribute ')hasattrr2   getattrAttributeError	__class__r,   )r   names     r   __getattr__z _ModelBasedInference.__getattr__G   sU    4?D)) 	24?D111K'KKDKKK
 
 	
r   N)r,   r-   r.   r3   r&   r7   r?   r/   r   r   r   r   =   sP        < < <4 4 40 0 0
 
 
 
 
r   r   c                   J     e Zd Zd
 fd	Zd Zd Zd Zd Zd Zd Z	d	 Z
 xZS )_ModelBasedConfigNc                 x    t                                                       || _        |j        j        | _        d S r*   )superr3   _configGlobalmodel_model_name)r   configr   r   r=   s       r   r3   z_ModelBasedConfig.__init__P   s3    !=.r   c                    t          | j        j                  }|                    dd           }| j        j                            dd           }t                      }|                    d|          }|                    d|          }|                    d|          }|                    d|          }|                    d|          }	|                    d|          }
i }||ur||d<   ||ur||d<   ||ur&t          |t                    rt          di |n||d	<   ||ur||d<   |	|ur|	|d<   |
|ur|
|d<   t          | j        f||d
|}d|v sJ ||fS )Nr   deviceengineengine_configkernel_optionuse_hpip
hpi_configgenai_config	pp_option)r   rJ   inputr/   )r   rD   PredictpoprE   getobject
isinstancedictr   r   rG   )r   predict_kwargsr   rJ   UNSETrK   rL   rM   rN   rO   rP   create_predictor_kwargs	predictors                r   _build_predictorz"_ModelBasedConfig._build_predictorU   s   !$,"677"&&{D99	$((488##He44&**?EBB&**?EBB!%%j%88#''e<<
%)).%@@"$06#H-%%7D#O4%% mT22#%66666" $K0
 5  2:#J/U""4>#L1u$$6B#N3$

 
 &	
 
	 .((((y((r   c                 R    t          | j                  }|                                S r*   )r   rD   check)r   dataset_checkers     r   r   z_ModelBasedConfig.check_dataset~   s#    /==$$&&&r   c                 V    t          | j                  }|                                 d S r*   )r
   rD   r   )r   trainers     r   r   z_ModelBasedConfig.train   s"    --r   c                 R    t          | j                  }|                                S r*   )r   rD   r    )r   	evaluators     r   r    z_ModelBasedConfig.evaluate   s#    #DL11	!!###r   c                 R    t          | j                  }|                                S r*   )r	   rD   r"   )r   exportors     r   r"   z_ModelBasedConfig.export   s!    !$,//   r   c                 R    t          | j                  }|                                S r*   )r   rD   convert)r   	converters     r   r$   z&_ModelBasedConfig.pdparams2safetensors   s#    *4<88	  """r   c              #   T   K   |                                  \  }} |di |E d {V  d S r6   )r]   )r   rY   r\   s      r   r&   z_ModelBasedConfig.predict   sJ      $($9$9$;$;!	9..~...........r   r*   )r,   r-   r.   r3   r]   r   r   r    r"   r$   r&   __classcell__)r=   s   @r   rA   rA   O   s        / / / / / /
') ') ')R' ' '  $ $ $! ! !# # #/ / / / / / /r   rA   r*   )copyr   	inferencer   -inference.models.runners.paddle_static.configr   modulesr   r   r	   r
   r   r   r   r   rA   r/   r   r   <module>rp      s'         ' ' ' ' ' ' P P P P P P                1 1 1 1 1 1 1 14
 
 
 
 
: 
 
 
$E/ E/ E/ E/ E/
 E/ E/ E/ E/ E/r   