sans quantization dynamique :
from ultralytics import YOLO
# Charger ton modèle pré-entraîné
model = YOLO("traffic_light_model.pt")
print("✅ YOLOv11 model loaded successfully")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("traffic_light_model.torchscript")
_______________________________________________
from ultralytics import YOLO
import torch
1️⃣ 1 Charger ton modèle YOLOv11 entraîné
1#
print("🔄 Chargement du modèle YOLO traffic_light_model.pt...")
model = YOLO("traffic_light_model.pt")
# (Optionnel) Si tu veux filtrer certaines classes uniquement
# model.set_classes(["green", "red", "yellow"])
2️⃣ Exporter en TorchScript
#
# - imgsz=1280 → taille d'image (changer selon ton entraînement)
# - half=True → poids en float16 pour accélérer sur GPU (Raspberry Pi ne supporte
pas FP16, mettre False sinon)
# - batch=1 → inférence 1 image
# - dynamic=False → graphe statique
print("🔄 Export en TorchScript...")
model.export(
format="torchscript",
imgsz=640, # taille standard YOLOv11
half=False, # mettre True seulement si GPU compatible FP16
batch=1,
dynamic=False
)
3️⃣ Charger le modèle TorchScript exporté
#
print("🔄 Chargement du modèle TorchScript...")
model_ts = torch.jit.load("traffic_light_model.torchscript",
_extra_files={"config.txt": ""})
model_ts.eval()
4️⃣ Exemple d'entrée (5 images factices 640x640)
#
im = torch.zeros((5, 3, 640, 640), dtype=torch.float32, device=torch.device("cpu"))
5️⃣ Inférence avec le modèle TorchScript
#
print("🔄 Lancement de l'inférence TorchScript...")
output = model_ts(im)
print("✅ Inférence terminée.")
print("📦 Type sortie :", type(output))
if isinstance(output, (list, tuple)):
print("📏 Nombre de sorties :", len(output))
for i, out in enumerate(output):
print(f" ➤ Sortie {i+1} → Shape:", getattr(out, "shape", "N/A"))
else:
print("📏 Shape sortie :", output.shape)
_____________________________________________________
import torch
from ultralytics import YOLO
1️⃣ Charger le modèle YOLO
#
model_path = "traffic_light_model.pt" # ton fichier entraîné
model = YOLO(model_path)
print("✅ Modèle YOLO chargé avec succès.")
2️⃣ Exporter en TorchScript (optimisé pour inference)
#
# imgsz=512 → taille de l'image
# half=True → utiliser demi-précision (FP16) pour accélérer sur GPU compatible
exported_model = model.export(
format="torchscript",
imgsz=512,
half=True # mettre True si GPU FP16
print("✅ Modèle exporté :", exported_model)
3️⃣ Charger le modèle TorchScript pour tester
#
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model_ts = torch.jit.load(exported_model, map_location=device)
model_ts.eval()
print("✅ Modèle TorchScript chargé.")
4️⃣ Test rapide avec un tenseur factice
#
dummy_input = torch.zeros((1, 3, 512, 512), dtype=torch.float32).to(device)
with torch.no_grad():
output = model_ts(dummy_input)
print("✅ Inference test OK.")