o
    0jo                     @   s   d dl mZmZmZmZmZ d dlZ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	dlmZ ejG dd deZe	dG dd deZdS )    )AnyDictListOptionalUnionN   )pipeline_requires_extra   )	HPIConfigPaddlePredictorOption)MLClassResult)	benchmark   )(AutoParallelImageSimpleInferencePipeline)BasePipelinec                       s   e Zd ZdZddddddddedee dee deeeef  d	ee d
e	dee
eeef ef  ddf fddZ	dde
eee ejeej f de
eeedf defddZ  ZS )&_ImageMultiLabelClassificationPipelinez)Image Multi Label Classification PipelineNFdeviceengineengine_config	pp_optionuse_hpip
hpi_configconfigr   r   r   r   r   r   returnc          
   	      sZ   t  jd||||||d| |d d dd| _|d d }	| |	| _|	d  dS )a)  Initializes the image multilabel classification pipeline.

        Args:
            config (Dict): Configuration dictionary containing model and other parameters.
            device (Optional[str], optional): The device to use for prediction. Defaults to `None`.
            engine (Optional[str], optional): Inference engine. Defaults to `None`.
            engine_config (Optional[Dict[str, Any]], optional): Engine-specific config. Defaults to `None`.
            pp_option (Optional[PaddlePredictorOption], optional): Paddle predictor options.
                Defaults to `None`.
            use_hpip (bool, optional): Whether to use HPIP. Defaults to `False`.
            hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
                HPIP configuration. Defaults to `None`.
        r   
SubModulesImageMultiLabelClassification	thresholdN
batch_size )super__init__getr   Zcreate_model%image_multilabel_classification_model)
selfr   r   r   r   r   r   r   kwargsZ,image_multilabel_classification_model_config	__class__r   /var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddlex/inference/pipelines/image_multilabel_classification/pipeline.pyr!      s(   
z/_ImageMultiLabelClassificationPipeline.__init__inputr   c                 k   s(    | j ||du r| jn|dE dH  dS )af  Predicts image classification results for the given input.

        Args:
            input (Union[str, list[str], np.ndarray, list[np.ndarray]]): The input image(s) or path(s) to the images.
            **kwargs: Additional keyword arguments that can be passed to the function.

        Returns:
            TopkResult: The predicted top k results.
        N)r)   r   )r#   r   )r$   r)   r   r%   r   r   r(   predictM   s
   z._ImageMultiLabelClassificationPipeline.predictN)__name__
__module____qualname____doc__r   r   strr   r   boolr   r
   r!   r   npZndarrayfloatdictlistr   r*   __classcell__r   r   r&   r(   r      sB    	1r   Zcvc                   @   s$   e Zd ZdZedd Zdd ZdS )%ImageMultiLabelClassificationPipelineZimage_multilabel_classificationc                 C   s   t S r+   )r   )r$   r   r   r(   _pipeline_clsg   s   z3ImageMultiLabelClassificationPipeline._pipeline_clsc                 C   s   |d d d S )Nr   r   r   r   )r$   r   r   r   r(   _get_batch_sizek   s   z5ImageMultiLabelClassificationPipeline._get_batch_sizeN)r,   r-   r.   entitiespropertyr8   r9   r   r   r   r(   r7   c   s
    
r7   )typingr   r   r   r   r   numpyr2   Z
utils.depsr   modelsr
   r   Z-models.image_multilabel_classification.resultr   Zutils.benchmarkr   Z	_parallelr   baser   Ztime_methodsr   r7   r   r   r   r(   <module>   s   G