> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/key-features/train-custom-ai-models-with-training-window/when-to-stop-training.md).

# Quand arrêter l'entraînement

L'entraînement n'a pas besoin de tourner « pour toujours ». Dans les projets réels, les meilleurs résultats viennent d'un arrêt au bon moment :

* pas trop tôt (le modèle n'a pas encore appris)
* pas trop tard (le modèle commence à surapprendre / mémoriser)

{% hint style="info" %}
Dans AugeLab Studio, l'entraînement s'arrête généralement lorsqu'il atteint les **max iterations** configurées, ou lorsque vous cliquez sur **Stop Training**. Le **Training Chart** vous aide à décider s'il vaut la peine de continuer.
{% endhint %}

Si c'est votre premier entraînement, commencez par la [Starter Checklist](#starter-checklist).

## Surveiller la progression de l'entraînement <a href="#monitor-training-progress" id="monitor-training-progress"></a>

Pendant l'entraînement, surveillez la progression du modèle et observez la relation entre :

* Loss
* mAP
* IOU
* Iterations

Loss et mAP sont affichés sur un graphique comme ci-dessous :

<figure><img src="/files/BoDf6qbkPhLErb4O1Q6o" alt="Good training example chart"><figcaption><p>Exemple : bon entraînement (loss diminue, mAP augmente puis se stabilise)</p></figcaption></figure>

{% hint style="warning" %}
Toutes les métriques peuvent fortement varier selon :

* la diversité des données
* la taille des données
* la précision des annotations
* la taille du modèle

Les chiffres ci-dessous servent seulement de repères initiaux pour les débutants.
{% endhint %}

### Règle rapide (ce qui marche généralement) <a href="#quick-rule" id="quick-rule"></a>

Si vous ne retenez qu'une règle :

Arrêtez lorsque la mAP de validation cesse de s'améliorer pendant longtemps, ou quand elle commence à baisser pendant que Loss continue de baisser.

Ce second cas est le signe classique de surapprentissage.

### Schémas courants d'entraînement (antisèche) <a href="#common-patterns" id="common-patterns"></a>

Ces schémas sont fréquents en pratique. Pour chacun, regardez d'abord le graphique, puis lisez l'explication.

{% hint style="info" %}
Ces graphiques d'exemple sont générés à des fins de formation/documentation. Dans votre dépôt, placez-les sous le dossier .assets/ à côté de cette page.
{% endhint %}

#### Données insuffisantes <a href="#examples-insufficient-data" id="examples-insufficient-data"></a>

<figure><img src="/files/B7yzp3PdBDYzq62VBnZf" alt="Insufficient data example chart"><figcaption><p>Données insuffisantes : trop peu de points / exécution trop courte (métriques bruyantes au début)</p></figcaption></figure>

Explication :

* Ce que ça signifie : vous n'avez pas encore assez de signal pour faire confiance à la tendance.
* Causes probables : trop peu d'images, exécution trop courte, split de validation trop faible.
* Que faire : entraîner plus longtemps ; ajouter des données ; vérifier que la validation existe et couvre la vraie variété.

#### Faible variance <a href="#examples-low-variance" id="examples-low-variance"></a>

<figure><img src="/files/25Gz7ZDIDRVHoEyN5eTy" alt="Low variance example chart"><figcaption><p>Faible variance : loss plafonne et la mAP s'améliore à peine</p></figcaption></figure>

Explication :

* Ce que ça signifie : le modèle apprend rapidement les répétitions « faciles », puis n'obtient plus d'informations nouvelles.
* Causes probables : dataset répétitif (même fond/angle/lumière), absence d'exemples négatifs, cas limites manquants.
* Que faire : ajouter de la variété (angles, fonds, éclairages), ajouter des négatifs, capturer volontairement des cas difficiles.

#### Surentraînement <a href="#examples-overtraining" id="examples-overtraining"></a>

<figure><img src="/files/UPLJdzEF9LwU8GuZSxr6" alt="Overtraining example chart"><figcaption><p>Surentraînement : loss continue de s'améliorer, mais la mAP atteint un pic (même très élevé) puis se dégrade</p></figcaption></figure>

Le surentraînement n'est pas toujours catastrophique, mais indique généralement de la mémorisation plutôt que de la généralisation. Pour des environnements stricts (caméra fixe, éclairage fixe), c'est acceptable.

* Ce que ça signifie : le modèle s'améliore sur le jeu d'entraînement, mais se dégrade sur la validation (mémorisation).
* Causes probables : manque de variété, validation trop petite, doublons/near-duplicates.
* Que faire : arrêter et conserver les meilleurs poids ; ajouter de la variété ; augmenter la part de validation ; supprimer les doublons.

#### Modèle qui n'apprend pas <a href="#examples-not-learning" id="examples-not-learning"></a>

<figure><img src="/files/4AmDGkN8x7LX7jWyRN64" alt="Model not learning example chart"><figcaption><p>Modèle qui n'apprend pas : loss reste élevé/plat, mAP proche de zéro</p></figcaption></figure>

Explication :

* Ce que ça signifie : l'entraînement ne progresse pas de manière significative.
* Causes probables : mauvaises étiquettes/classes, décalage des IDs de classes, format d'annotation cassé, mauvaise configuration.
* Que faire : vérifier l'ordre du fichier `.names` vs les IDs des labels ; contrôler manuellement des étiquettes ; confirmer le format YOLO ; ajuster les paramètres d'entraînement.

#### Jeu de données corrompu <a href="#examples-corrupted" id="examples-corrupted"></a>

<figure><img src="/files/qTMkd5VnKsLPo6MrJusN" alt="Corrupted dataset example chart"><figcaption><p>Jeu de données corrompu : pics de loss instables et mAP erratique</p></figcaption></figure>

Explication :

* Ce que ça signifie : l'entraînement est perturbé par des données incohérentes ou cassées.
* Causes probables : fichiers images corrompus, labels invalides, sources/résolutions mixtes, images « vides mais contenant des objets ».
* Que faire : vérifier le dataset ; supprimer les données corrompues ; corriger le format des labels ; réexporter un jeu propre.

#### Bon entraînement <a href="#examples-good" id="examples-good"></a>

<figure><img src="/files/BoDf6qbkPhLErb4O1Q6o" alt="Good training example chart"><figcaption><p>Bon entraînement : apprentissage régulier et plateau stable élevé</p></figcaption></figure>

Explication :

* Ce que ça signifie : apprentissage sain et bonne généralisation.
* Causes probables : labels cohérents + assez de variété.
* Que faire : arrêter lorsque la mAP se stabilise ; valider sur des vidéos réelles / un « golden set » ; déployer les meilleurs poids.

### Loss <a href="#loss" id="loss"></a>

Loss est un signal d'ajustement pendant l'entraînement. Il représente à quel point le modèle s'adapte aux batches d'entraînement.

Loss est utile, mais peut être trompeur :

* Loss peut continuer à diminuer même si le modèle surapprend déjà.
* Loss ne garantit pas la performance « en conditions réelles ».

{% hint style="info" %}
Le Loss seul ne suffit pas pour juger de la précision. Utilisez la mAP pour comprendre la généralisation sur les données de validation.
{% endhint %}

#### \*\*Loss ≥ 2.0\*\* <a href="#id-20-loss" id="id-20-loss"></a>

Indique souvent que « l'apprentissage a commencé », mais la qualité peut rester faible. À utiliser comme un signe que la pipeline fonctionne, pas comme une ligne d'arrivée.

{% hint style="warning" %}
Comme montré dans le graphique ci-dessus, des valeurs de loss autour de 2.0 peuvent ne pas produire des modèles précis.
{% endhint %}

#### \*\*Loss ≥ 1.0\*\* <a href="#id-10-loss" id="id-10-loss"></a>

Souvent une base utilisable sur de nombreux datasets ciblés.

#### \*\*Loss ≥ 0.5\*\* <a href="#id-05-loss" id="id-05-loss"></a>

Souvent indicateur d'un modèle bien ajusté sur un dataset propre et cohérent. Après ce point, les améliorations peuvent être lentes et le risque de surapprentissage augmente.

<details>

<summary>Les seuils de Loss ne sont pas universels (pourquoi)</summary>

Les valeurs de loss dépendent de l'architecture du modèle, de la taille d'image, du nombre de classes, du bruit dans les labels, des augmentations et de la complexité du dataset. Utilisez les seuils de loss pour construire une intuition, pas comme un verdict universel.

</details>

### mAP <a href="#map" id="map"></a>

La métrique mAP (mean average precision) combine précision et rappel pour fournir une évaluation complète de la capacité du modèle à détecter des objets.

Elle est calculée en comparant les prédictions aux labels ground-truth à des seuils IoU donnés (les détails exacts dépendent du backend/configuration d'entraînement).

{% hint style="warning" %}
La mAP n'est valable que si votre ensemble de validation est représentatif. Si les images de validation sont trop peu nombreuses, trop « propres », trop similaires à l'entraînement, ou mal étiquetées, la mAP peut paraître excellente alors que le modèle échoue en production.
{% endhint %}

Interprétation pratique :

* Un plateau stable vaut souvent mieux que de pourchasser le dernier +1 %.
* Une mAP très élevée (95–99 %) sur un petit jeu répétitif est souvent un piège de surapprentissage.
* Si la mAP atteint un pic puis baisse, consultez la section [Over-Fitting](#over-fitting).

### IOU <a href="#iou" id="iou"></a>

L'IOU (Intersection over Union) mesure le recouvrement entre les boîtes prédites et les boîtes réelles pour chaque détection d'objet. La mAP évalue la performance globale du modèle de détection en tenant compte de la précision et du rappel.

{% hint style="info" %}
Plus l'IOU est élevé, plus la boîte prédite est serrée autour de l'objet.
{% endhint %}

Vous pouvez suivre chaque IOU dans les logs de la Training Window :

<figure><img src="/files/jgC0SXUoUvRke2ocTWpT" alt=""><figcaption></figcaption></figure>

## Affinage (Fine Tuning) <a href="#fine-tuning" id="fine-tuning"></a>

### Durée d'entraînement <a href="#training-time" id="training-time"></a>

Définissez un budget de temps maximal d'entraînement en fonction des ressources disponibles et des contraintes du projet. Si le modèle n'atteint pas de performance satisfaisante dans le temps imparti, envisagez d'arrêter l'entraînement et d'explorer d'autres approches telles que :

* analyser manuellement la qualité des annotations
* vérifier la variété des classes
* choisir d'autres tailles de modèle et tailles de batch
* augmenter la taille de la base de données

### Over-Fitting <a href="#over-fitting" id="over-fitting"></a>

Évitez le surapprentissage en surveillant comment la mAP évolue dans le temps.

Le signal de surapprentissage le plus fiable en « conditions réelles » est :

loss diminue, mais la mAP atteint un pic puis se détériore.

Le surapprentissage n'est pas toujours « catastrophique » dans des configurations très contraintes et fixes. Mais si vous visez la robustesse (éclairages différents, variations d'environnement), le surapprentissage se manifestera vite.

Ce qui aide généralement :

* Ajouter de la variété (nouveaux jours, nouveaux éclairages, nouveaux fonds)
* Ajouter des négatifs ressemblant à votre environnement réel
* Renforcer la cohérence des labels (même style entre les annotateurs)
* Augmenter la part de validation pour rendre la mAP plus difficile à « tricher »

<figure><img src="/files/M4QHzizfwD6aQGCGvaCM" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/UPLJdzEF9LwU8GuZSxr6" alt="Overtraining example chart"><figcaption><p>Exemple de surentraînement : la mAP atteint un pic puis baisse pendant que la loss continue de diminuer</p></figcaption></figure>

### Équilibrer temps et performance <a href="#balancing-time-and-performance" id="balancing-time-and-performance"></a>

Mettez en balance le temps d'entraînement et la performance souhaitée. Parfois, des itérations supplémentaires améliorent le résultat, mais le gain diminue avec le temps. Pesez les bénéfices face au coût computationnel et à l'urgence du projet.

Généralement, selon le nombre de classes et la taille de la base, la durée d'entraînement peut varier d'un jour à une semaine.

## Checklist de démarrage (Starter Checklist) <a href="#starter-checklist" id="starter-checklist"></a>

Base de données :

* [ ] Les labels sont cohérents (style des boîtes + signification des classes)
* [ ] Le dataset contient de la variété réelle (éclairage, angles, fonds)
* [ ] Vous avez suffisamment d'exemples par classe pour apprendre (plus c'est mieux ; commencez petit puis améliorez)
* [ ] (Optionnel) Les augmentations sont activées *après* que les labels sont corrects

Modèle :

* [ ] Choix d'une taille de modèle compatible avec les exigences FPS
* [ ] Modèle adapté aux [exigences système](/french/introduction/system-requirements.md) et compatibilité CUDA, mémoire GPU.
* [ ] Taille de batch adaptée à la mémoire GPU (utiliser subdivisions pour éviter OOM)

Arrêt d'entraînement (arrêter si) :

* [ ] La [mAP](#map) plafonne pendant longtemps (rendements décroissants)
* [ ] La [mAP](#map) baisse pendant que la [Loss](#loss) continue de baisser (surapprentissage)
* [ ] Vous atteignez votre budget temps et les résultats sont « suffisamment bons » pour tester sur des vidéos réelles

<details>

<summary>Checklist de débogage rapide (quand quelque chose ne va pas)</summary>

1. Vérifier rapidement 20–50 images réparties dans le dataset (pas seulement la première page)
2. Confirmer le mapping des classes :

* l'ordre du fichier `.names` correspond aux IDs des labels
* pas de classes manquantes/en trop

3. Vérifier des fichiers de labels :

* Format YOLO : `class x_center y_center width height` (normalisé)
* les boîtes sont dans les limites et non de taille zéro

4. Si la mAP semble « trop belle pour être vraie » :

* la part de validation peut être trop petite ou trop similaire à l'entraînement
* vous pouvez avoir des doublons / near-duplicates

5. Si l'entraînement est instable ou provoque des OOM :

* augmenter les subdivisions ou réduire le batch
* réduire temporairement la résolution d'entrée pour déboguer

</details>
