Aller au contenu principal

Récapitulation et examen final

Dix modules pour passer d'un tenseur isolé à un modèle servi par HTTP. Voici le cours condensé, puis les fils qui le traversent.

Le cours d'un coup d'œil

ModuleL'essentiel à retenir
1. Tenseurs et graphesTenseur immuable, variable mutable ; tf.function trace une fois puis n'exécute plus le Python
2. API séquentielleLa perte se déduit du format des étiquettes ; predict rend des probabilités, pas des classes
3. API fonctionnelleCréer et appliquer une couche sont deux gestes ; loss_weights est obligatoire à sorties multiples
4. Couches personnaliséesPoids dans build via add_weight ; redéfinir train_step plutôt que la boucle entière
5. Pipelines tf.datashuffle avant batch, prefetch en dernier ; un tampon trop petit produit des lots monoclasses
6. Rappelssave_best_only=True et restore_best_weights=True, tous deux non activés par défaut
7. TensorBoardUn répertoire par exécution ; les histogrammes révèlent les pathologies silencieuses
8. Apprentissage par transferttrainable=False ne fige pas la normalisation par lots ; training=False à l'appel
9. Entraînement distribuéLe batch_size est global et le taux d'apprentissage doit suivre
10. SavedModel et serviceLe prétraitement doit être une couche, sinon il disparaît à l'export

Les fils qui traversent le cours

Entraînement et inférence sont deux régimes, et TensorFlow ne vous prévient pas. L'abandon s'active dans l'un, pas dans l'autre. La normalisation par lots utilise les statistiques du lot, puis ses moyennes courantes. Ce basculement est automatique dans fit, mais il devient votre responsabilité dès que vous écrivez une couche personnalisée (module 4) ou que vous gelez une base préentraînée (module 8). Aucune de ces deux erreurs ne lève d'exception : elles dégradent silencieusement les résultats. C'est le bogue le plus fréquent de ce cours, et il porte un nom différent selon l'endroit où il apparaît.

Ce qui n'est pas dans l'artefact n'existe pas. Un prétraitement écrit dans le script d'entraînement, un tf.Variable créé sans add_weight, une couche personnalisée sans get_config : dans les trois cas, quelque chose de nécessaire vit en dehors de l'objet censé tout contenir. Le symptôme diffère — prédictions dégradées, poids qui n'apprend pas, rechargement impossible — mais la cause est la même. Avant d'exporter, la question à se poser est toujours : cet artefact suffit-il à quelqu'un qui n'a pas mon script ?

Le goulot n'est presque jamais là où on le cherche. La réaction spontanée devant un entraînement lent est d'ajouter du matériel. Les modules 5, 7 et 9 proposent l'ordre inverse : mesurer avec le profileur, corriger le pipeline de données, activer la précision mixte, et ne distribuer qu'ensuite. Les deux premières étapes ne coûtent rien et donnent souvent plus que la troisième, qui multiplie la facture.

Keras offre des points d'entrée intermédiaires, et il faut les connaître pour ne pas tout réécrire. Entre fit et une boucle manuelle complète, il y a train_step. Entre une couche standard et un opérateur de bas niveau, il y a la sous-classe de Layer. Chaque fois que vous êtes tenté d'abandonner l'infrastructure, cherchez le point d'extension : c'est ce qui préserve les rappels, TensorBoard et la distribution.

L'examen final

L'examen comporte 40 questions couvrant les dix modules : distinction entre tenseur et variable, comportement exact de tf.function et causes de retraçage, choix de la perte selon le format des étiquettes, construction d'architectures à entrées et sorties multiples, écriture d'une couche avec ses trois méthodes, composition et ordre d'un pipeline tf.data, réglage des rappels, lecture d'histogrammes, procédure de transfert en deux phases, mise à l'échelle du lot et du taux en distribué, et export vers un service.

Plusieurs questions présentent des situations à diagnostiquer : un print qui n'apparaît qu'une fois, des prédictions qui changent d'un appel à l'autre, une exactitude de validation qui régresse pendant un réglage fin, un modèle servi qui répond autre chose que le modèle local, un entraînement qui ralentit après passage à quatre accélérateurs. C'est le jugement qui est évalué, pas la mémorisation des signatures d'API.

En cas de réussite, votre attestation d'achèvement est délivrée immédiatement ; son numéro est vérifiable par tout tiers sur la plateforme.

Avant de commencer

Reprenez le tableau ci-dessus et, pour chaque ligne, demandez-vous « quel symptôme verrais-je si je me trompais ici ? ». Si vous savez expliquer pourquoi un print dans une fonction tracée ne s'affiche qu'une fois, pourquoi geler une base ne suffit pas quand elle contient de la normalisation par lots, et pourquoi un modèle servi peut répondre différemment du modèle local, vous êtes prêt. Bonne chance !

Examen final

Prêt à valider ce cours ?

40 questions tirées au hasard dans la banque du cours · seuil de réussite 70 % · certificat PDF vérifiable délivré immédiatement en cas de réussite.

Commencer l'examen

Connexion à votre compte InSkillML et abonnement actif requis. Vous pouvez aussi lancer l'examen depuis Mes cours.