Ë
    Fêñik	  ã                  ód   — d dl mZ d dlmZ d dlZd dlmZmZ 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)é    )Úannotations)ÚPathN)ÚLOGGERÚYAMLc           	     óB  — ddl m}  |dd¬«        |d«       ddl}ddl}	t	        j
                  d|› d	|j                  › d
|	j                  › d�«       t        |«      }t        |dz  j                  «       |dz  j                  «       |dz  j                  «       ¬«      }
t        |dz  j                  «       |dz  j                  «       |dz  j                  «       |dz  j                  «       |dz  j                  «       ¬«      }|j                  dd¬«       |�|j                  nd} |	j                  | fd|i|
¤|¤||dœ¤Ž ddddg|j                  «       ¢­D ]  }t        |«      j                  d¬«       Œ |rt        j                   |d z  |«       t#        |«      S )!aG  Export a PyTorch model to NCNN format using PNNX.

    Args:
        model (torch.nn.Module): The PyTorch model to export.
        im (torch.Tensor): Example input tensor for tracing.
        output_dir (Path | str): Directory to save the exported NCNN model.
        half (bool): Whether to enable FP16 export.
        metadata (dict | None): Optional metadata saved as ``metadata.yaml``.
        device (torch.device | None): Device the model lives on.
        prefix (str): Prefix for log messages.

    Returns:
        (str): Path to the exported ``_ncnn_model`` directory.
    r   )Úcheck_requirementsÚncnnz	--no-deps)ÚcmdsÚpnnxNú
z starting export with NCNN z
 and PNNX z...zmodel.ncnn.paramzmodel.ncnn.binzmodel_ncnn.py)Ú	ncnnparamÚncnnbinÚncnnpyzmodel.ptzmodel.pnnx.paramzmodel.pnnx.binzmodel_pnnx.pyzmodel.pnnx.onnx)ÚptpathÚ	pnnxparamÚpnnxbinÚpnnxpyÚpnnxonnxT)ÚparentsÚexist_okÚcpuÚinputs)Úfp16Údevicez	debug.binzdebug.paramz
debug2.binzdebug2.param)Ú
missing_okzmetadata.yaml)Úultralytics.utils.checksr   r	   r   r   ÚinfoÚ__version__r   ÚdictÚas_posixÚmkdirÚtypeÚexportÚvaluesÚunlinkr   ÚsaveÚstr)ÚmodelÚimÚ
output_dirÚhalfÚmetadatar   Úprefixr   r	   r   Ú	ncnn_argsÚ	pnnx_argsÚdevice_typeÚf_debugs                 ú_/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/ultralytics/utils/export/ncnn.pyÚ
torch2ncnnr3      s¤  € õ. <á�v KÕ0Ù�vÔÛÛä
‡K�K�"�V�HÐ7¸×8HÑ8HÐ7IÈÐTX×TdÑTdÐSeÐehÐiÔjÜ�jÓ!€JäØÐ 2Ñ2×<Ñ<Ó>ØÐ.Ñ.×8Ñ8Ó:Ø˜_Ñ,×6Ñ6Ó8ô€Iô
 Ø˜ZÑ'×1Ñ1Ó3ØÐ 2Ñ2×<Ñ<Ó>ØÐ.Ñ.×8Ñ8Ó:Ø˜_Ñ,×6Ñ6Ó8ØÐ0Ñ0×:Ñ:Ó<ô€Ið ×Ñ˜T¨DÐÔ1Ø!'Ð!3�&—+’+¸€KØ€D‡K�K�ÑZ˜bÐZ IÐZ°ÐZÀÈkÔZà °¸nÐbÈy×O_ÑO_ÓOaÑbò .ˆÜˆW‹×Ñ¨ÐÕ-ð.ñ Ü�	‰	�*˜Ñ.°Ô9Üˆz‹?Ðó    )FNNÚ )r(   ztorch.nn.Moduler)   ztorch.Tensorr*   z
Path | strr+   Úboolr,   zdict | Noner   ztorch.device | Noner-   r'   Úreturnr'   )	Ú
__future__r   Úpathlibr   ÚtorchÚultralytics.utilsr   r   r3   © r4   r2   ú<module>r=      sr   ðõ #å ã ç *ð Ø Ø"&Øð7Øð7àð7ð ð7ð ð	7ð
 ð7ð  ð7ð ð7ð 	ô7r4   