import torch, onnx, os, sys _orig = torch.load def _safe(*a, **kw): kw["weights_only"] = False; return _orig(*a, **kw) torch.load = _safe from ultralytics import YOLO from onnxconverter_common import float16 best = sys.argv[1] if len(sys.argv) > 1 else "runs/detect/train/weights/best.pt" print(f"Exporting: {best}") model = YOLO(best, task="detect") model.export(format="onnx", opset=17, simplify=True, imgsz=1280) onnx_path = best.replace(".pt", ".onnx") m = onnx.load(onnx_path) m16 = float16.convert_float_to_float16(m, keep_io_types=True) onnx.save(m16, "/tmp/model_fp16.onnx") size = os.path.getsize("/tmp/model_fp16.onnx") / 1024 / 1024 print(f"FP16: {size:.1f} MB") print("DONE")