Ë
    Fêñit  ã                  ó\   — d dl mZ d dlZd dlmZ d dlmZ 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)é    )ÚannotationsN)ÚPath)ÚLOGGERc                ó4  — ddl m} ddlm} |sJ d«       ‚t	        | «      j                  «       s
J d| › �«       ‚ |d«       ddl}ddlm}	 t        j                  d	|› d
|j                  «       › d�«       dddd| dt        |«      dt        j                  |xs i «      g	}
|r|
j                  d«       |r|
j!                  d«       |	j#                  |
«       t	        |«      j$                  dz  }|j                  «       r|j'                  «        t        |«      S )aé  Convert an ONNX model to MNN format.

    Args:
        onnx_file (str): Path to the source ONNX file.
        output_file (Path | str): Path to save the exported MNN model.
        half (bool): Whether to enable FP16 conversion.
        int8 (bool): Whether to enable INT8 weight quantization.
        metadata (dict | None): Optional metadata embedded via ``--bizCode``.
        prefix (str): Prefix for log messages.

    Returns:
        (str): Path to the exported ``.mnn`` file.
    r   )Úcheck_requirements)Ú
TORCH_1_10z>MNN export requires torch>=1.10.0 to avoid segmentation faultszfailed to export ONNX file: z
MNN>=2.9.6N)Ú
mnnconvertú
z starting export with MNN z...Ú z-fÚONNXz--modelFilez
--MNNModelz	--bizCode)z--weightQuantBitsÚ8z--fp16z.__convert_external_data.bin)Úultralytics.utils.checksr   Úultralytics.utils.torch_utilsr   r   ÚexistsÚMNNÚ	MNN.toolsr	   r   ÚinfoÚversionÚstrÚjsonÚdumpsÚextendÚappendÚconvertÚparentÚunlink)Ú	onnx_fileÚoutput_fileÚhalfÚint8ÚmetadataÚprefixr   r   r   r	   Úmnn_argsÚconvert_scratchs               ú^/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/ultralytics/utils/export/mnn.pyÚonnx2mnnr&      s  € õ* <Ý8áÐWÐWÓWˆ:Ü�	‹?×!Ñ!Ô#ÐOÐ'CÀIÀ;Ð%OÓOÐ#á�|Ô$ÛÝ$ä
‡K�K�"�V�HÐ6°s·{±{³}°oÀSÐIÔJà
ØØØØØÜˆKÓØÜ�
‰
�8’>˜rÓ"ð
€Hñ Ø�‰Ð2Ô3ÙØ�‰˜Ô!Ø×Ñ�xÔ ä˜;Ó'×.Ñ.Ð1OÑO€OØ×ÑÔØ×ÑÔ Üˆ{ÓÐó    )FFNr   )r   r   r   z
Path | strr   Úboolr    r(   r!   zdict | Noner"   r   Úreturnr   )Ú
__future__r   r   Úpathlibr   Úultralytics.utilsr   r&   © r'   r%   ú<module>r.      sh   ðõ #ã Ý å $ð ØØ Øð4Øð4àð4ð ð4ð ð	4ð
 ð4ð ð4ð 	ô4r'   