Ë
    FêñiK  ã                  ó^   — 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y)
é    )Úannotations)ÚPathN)ÚLOGGER)Úcheck_executorch_requirementsé   )ÚBaseBackendc                  ó    — e Zd ZdZdd„Zdd„Zy)ÚExecuTorchBackendzÿMeta 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.
    c                óØ  — t        j                  d|› d�«       t        «        ddlm} t        |«      }|j                  «       r t        |j                  d«      «      }|dz  }n|}|j                  dz  }|j                  «       j                  t        |«      «      }|j                  d«      | _        |j                  «       r'ddlm} | j%                  |j'                  |«      «       y	y	)
z¯Load 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)ÚselfÚweightr   ÚwÚ
model_fileÚmetadata_fileÚprogramr   s           úd/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/ultralytics/nn/backends/executorch.pyÚ
load_modelzExecuTorchBackend.load_model   s¾   € ô 	�‰�h˜v˜hÐ&BÐCÔDÜ%Ô'å.ä�‹LˆØ�8‰8Œ:Ü˜aŸg™g gÓ.Ó/ˆJØ Ñ/‰MàˆJØŸH™H Ñ6ˆMà—+‘+“-×,Ñ,¬S°«_Ó=ˆØ×(Ñ(¨Ó3ˆŒ
ð ×ÑÔ!Ý.à×Ñ §	¡	¨-Ó 8Õ9ð "ó    c                ó:   — | j                   j                  |g«      S )zúRun 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   Úims     r$   r   zExecuTorchBackend.forward2   s   € ð �z‰z×!Ñ! 2 $Ó'Ð'r&   N)r   z
str | PathÚreturnÚNone)r)   ztorch.Tensorr*   Úlist)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   r   © r&   r$   r
   r
      s   „ ñó:ô8	(r&   r
   )Ú
__future__r   Úpathlibr   Útorchr   r   Úultralytics.utils.checksr   Úbaser   r
   r1   r&   r$   ú<module>r7      s%   ðõ #å ã å $Ý Bå ô,(˜õ ,(r&   