
    jt                    D    d dl mZ d dlZd dlmZ d dlmZ 	 	 	 	 dddZdS )    )annotationsN)Path)LOGGERF 	onnx_filestroutput_file
Path | strhalfboolint8metadatadict | Noneprefixreturnc                   ddl m} ddlm} |s
J d            t	          |                                           sJ d|               |d           ddl}ddlm}	 t          j
        d	| d
|                                 d           dddd| dt          |          dt          j        |pi           g	}
|r|
                    d           |r|
                    d           |	                    |
           t	          |          j        dz  }|                                r|                                 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...r   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versionr   jsondumpsextendappendconvertparentunlink)r   r	   r   r   r   r   r   r   r   r   mnn_argsconvert_scratchs               _/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/ultralytics/utils/export/mnn.pyonnx2mnnr*      s   * <;;;;;888888WWWWW:	??!!##OO%OI%O%OOO#|$$$JJJ$$$$$$
KIVIIs{{}}IIIJJJ
K
8>r""
H  42333 "!!!x   ;''.1OOO !   {    )FFNr   )r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   )
__future__r   r    pathlibr   ultralytics.utilsr   r*    r+   r)   <module>r0      sw    # " " " " "        $ $ $ $ $ $  4 4 4 4 4 4 4r+   