
    /jK                    f    d dl mZ d dlmZ d dlZd dlmZ d dlmZ ddl	m
Z
  G d d	e
          ZdS )
    )annotations)PathN)LOGGER)check_executorch_requirements   )BaseBackendc                  "    e Zd ZdZddZdd
ZdS )ExecuTorchBackendzMeta ExecuTorch inference backend for on-device deployment.

    Loads and runs inference with Meta ExecuTorch models (.pte files) using the ExecuTorch runtime. Supports both
    standalone .pte files and directory-based model packages with metadata.
    weight
str | PathreturnNonec                0   t          j        d| d           t                       ddlm} t          |          }|                                r(t          |                    d                    }|dz  }n|}|j	        dz  }|
                                                    t          |                    }|                    d          | _        |                                r0ddlm} |                     |                    |                     d	S d	S )
zLoad an ExecuTorch model from a .pte file or directory.

        Args:
            weight (str | Path): Path to the .pte model file or directory containing the model.
        zLoading z for ExecuTorch inference...r   )Runtimez*.ptezmetadata.yamlforward)YAMLN)r   infor   executorch.runtimer   r   is_dirnextrglobparentgetload_programstrload_methodmodelexistsultralytics.utilsr   apply_metadataload)selfr   r   w
model_filemetadata_fileprogramr   s           g/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/ultralytics/nn/backends/executorch.py
load_modelzExecuTorchBackend.load_model   s    	CvCCCDDD%'''......LL88:: 	7aggg..//J/MMJH6M++--,,S__==((33
 !! 	:......		- 8 899999	: 	:    imtorch.Tensorlistc                8    | j                             |g          S )zRun inference using the ExecuTorch runtime.

        Args:
            im (torch.Tensor): Input image tensor in BCHW format, normalized to [0, 1].

        Returns:
            (list): Model predictions as a list of ExecuTorch output values.
        )r   execute)r"   r*   s     r'   r   zExecuTorchBackend.forward2   s     z!!2$'''r)   N)r   r   r   r   )r*   r+   r   r,   )__name__
__module____qualname____doc__r(   r    r)   r'   r
   r
      sF         : : : :8	( 	( 	( 	( 	( 	(r)   r
   )
__future__r   pathlibr   torchr   r   ultralytics.utils.checksr   baser   r
   r3   r)   r'   <module>r9      s    # " " " " "        $ $ $ $ $ $ B B B B B B      ,( ,( ,( ,( ,( ,( ,( ,( ,( ,(r)   