
    j[                    N    d dl mZ d dlZd dlmZ d dlZd dlmZmZ 	 	 	 dddZ	dS )    )annotationsN)Path)LOGGERTORCH_VERSIONF modeltorch.nn.Moduleimtorch.Tensoroutput_file
Path | stroptimizeboolmetadatadict | Noneprefixstrreturnc                   t          j        d| dt           d           t          |          }t          j                            | |d          }dt          j        |pi           i}|r>t          j        | d           dd	l	m
}  ||                              ||
           n|                    ||
           |S )a/  Export a PyTorch model to TorchScript format.

    Args:
        model (torch.nn.Module): The PyTorch model to export (may be NMS-wrapped).
        im (torch.Tensor): Example input tensor for tracing.
        output_file (Path | str): Path to save the exported TorchScript model.
        optimize (bool): Whether to optimize for mobile deployment.
        metadata (dict | None): Optional metadata to embed in the TorchScript archive.
        prefix (str): Prefix for log messages.

    Returns:
        (str): Path to the exported ``.torchscript`` file.
    
z starting export with torch z...F)strictz
config.txtz optimizing for mobile...r   )optimize_for_mobile)_extra_files)r   infor   r   torchjittracejsondumpstorch.utils.mobile_optimizerr   _save_for_lite_interpretersave)	r   r
   r   r   r   r   tsextra_filesr   s	            g/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/ultralytics/utils/export/torchscript.pytorch2torchscriptr&      s    * KKVKKKKKLLLk""K	5	1	1BHN!;!;<K 7v888999DDDDDDB::;U`:aaaa
+666    )FNr   )r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   )

__future__r   r   pathlibr   r   ultralytics.utilsr   r   r&    r'   r%   <module>r,      s    # " " " " "         3 3 3 3 3 3 3 3  ! ! ! ! ! ! !r'   