Architecture du modèle
Un MLP compact : Flatten(28×28) →
Dense(128, relu) → Dense(64, relu) →
Dense(10, softmax). Optimiseur Adam, perte
entropie croisée catégorielle.
Dessinez un chiffre entre 0 et 9 dans la zone de gauche, cliquez sur le bouton de la classe correspondante pour ajouter votre dessin comme exemple. Après en avoir collecté quelques-uns, lancez l'entraînement : un petit réseau de neurones apprend, en direct, à reconnaître ce que vous considérez comme chacun de ces chiffres.
Le modèle démarre à zéro (poids aléatoires). C'est un exemple pédagogique de fine-tuning : vous constituez votre propre jeu de données, vous voyez la courbe de perte descendre en même temps que la précision monte, puis vous testez le modèle sur un nouveau dessin.
Ajouter le dessin actuel comme exemple de :
Le modèle n'a pas encore été entraîné. Les prédictions ci-dessous seront aléatoires jusqu'à l'entraînement.
🎯 Les valeurs affichées ci-dessous sont celles recommandées — calibrées pour donner de bons résultats avec un petit dataset artisanal. Libre à toi d'expérimenter pour comprendre l'effet de chaque paramètre ; le bouton Restaurer ramène la configuration optimale en un clic.
Un MLP compact : Flatten(28×28) →
Dense(128, relu) → Dense(64, relu) →
Dense(10, softmax). Optimiseur Adam, perte
entropie croisée catégorielle.
Chaque dessin est redimensionné à 28×28 en niveaux de gris, normalisé
dans [0, 1] et centré autour du centre de masse. Les
étiquettes sont encodées en one-hot. La data augmentation (activée par
défaut) génère neuf variantes par exemple original avec translation,
rotation et zoom aléatoires — le modèle apprend la forme du chiffre
plutôt que sa position.
Chaque epoch, TF.js calcule la perte et la précision sur l'ensemble collecté, met à jour les poids par rétropropagation, puis remonte les métriques à l'interface : courbes redessinées à chaud.
Tout tourne localement. Aucun dessin, exemple ou métrique ne quitte votre onglet. Seule la bibliothèque TF.js est téléchargée depuis un CDN.