Ë
    Fêñi­  ã                  óz   — d dl mZ d dlmZ d dlmZ d dlZd dlmZ 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	y)	é    )Úannotations)ÚPath)ÚAnyN)ÚLOGGERc	                óÜ  — ddl }	t        j                  d|› d|	j                  › d�«       t	        |t
        t        f«      r|D �
cg c]  }
|
j                  ‘Œ c}
n|j                  }|	j                  | |rdn||¬«      }|r-ddl	}|j                  |||j                  j                  |¬«      }|�7t        |«      }|j                  dd¬	«       |d
z  }|	j                  |||¬«       |S c c}
w )aQ  Export a PyTorch model to OpenVINO format with optional INT8 quantization.

    Args:
        model (torch.nn.Module): The model to export (may be NMS-wrapped).
        im (torch.Tensor | list[torch.Tensor] | tuple[torch.Tensor, ...]): Example input tensor(s) for tracing.
        output_dir (Path | str | None): Directory to save the exported OpenVINO model.
        dynamic (bool): Whether to use dynamic input shapes.
        half (bool): Whether to compress to FP16.
        int8 (bool): Whether to apply INT8 quantization.
        calibration_dataset (nncf.Dataset | None): Dataset for INT8 calibration (required when ``int8=True``).
        ignored_scope (dict | None): Kwargs passed to ``nncf.IgnoredScope`` for head patterns.
        prefix (str): Prefix for log messages.

    Returns:
        (ov.Model): The converted OpenVINO model.
    r   Nú
z starting export with openvino z...)ÚinputÚexample_input)ÚmodelÚcalibration_datasetÚpresetÚignored_scopeT)ÚparentsÚexist_okz	model.xml)Úcompress_to_fp16)Úopenvinor   ÚinfoÚ__version__Ú
isinstanceÚlistÚtupleÚshapeÚconvert_modelÚnncfÚquantizeÚQuantizationPresetÚMIXEDr   ÚmkdirÚ
save_model)r   ÚimÚ
output_dirÚdynamicÚhalfÚint8r   r   ÚprefixÚovÚiÚinput_shapeÚov_modelr   Úoutput_files                  úc/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/ultralytics/utils/export/openvino.pyÚtorch2openvinor,      sç   € ó6 ä
‡K�K�"�V�HÐ;¸B¿N¹NÐ;KÈ3ÐOÔPä+5°b¼4Ä¸-Ô+H BÖ'˜q�1—7“7Ó'ÈbÏhÉh€KØ×Ñ ±W©TÀ+Ð]_ÐÓ`€HÙÛà—=‘=ØØ 3Ø×*Ñ*×0Ñ0Ø'ð	 !ó 
ˆð ÐÜ˜*Ó%ˆ
Ø×Ñ °ÐÔ5Ø  ;Ñ.ˆØ
�‰�h ¸dˆÔCØ€Oùò# (s   ÁC))NFFFNNÚ )r   ztorch.nn.Moduler    z<torch.Tensor | list[torch.Tensor] | tuple[torch.Tensor, ...]r!   zPath | str | Noner"   Úboolr#   r.   r$   r.   r   z
Any | Noner   zdict | Noner%   ÚstrÚreturnr   )
Ú
__future__r   Úpathlibr   Útypingr   ÚtorchÚultralytics.utilsr   r,   © ó    r+   ú<module>r8      s’   ðõ #å Ý ã å $ð %)ØØØØ&*Ø!%Øð0Øð0àDð0ð "ð0ð ð	0ð
 ð0ð ð0ð $ð0ð ð0ð ð0ð 	ô0r7   