![[ИАД, осень 2025] Методы глубокого обучения. Семинар 3: CNN Implementation](https://i.ytimg.com/vi/7XNGYyTWHO4/sddefault.jpg)
[ИАД, осень 2025] Методы глубокого обучения. Семинар 3: CNN Implementation
Mots-clés
Résumé
217 mots
Évaluation critique
Valeur des informations & solidité de l’argumentation
La valeur des informations est élevée : le contenu est très technique, précis, et directement applicable. L’argumentation est solide, car chaque implémentation est justifiée par des considérations théoriques (formules) et pratiques (mesures de performance). Les explications sur les strides et la gestion mémoire sont claires et illustrées par des exemples concrets. La progression pédagogique est bien construite, passant d’une approche naïve à une approche optimisée, ce qui permet de comprendre les enjeux de performance. Les comparaisons chiffrées (facteur de ralentissement, temps d’exécution) renforcent la crédibilité du discours.
Rigueur scientifique, qualité des sources, adéquation du titre
La rigueur scientifique est bonne : les formules sont correctement dérivées, les implémentations sont vérifiées par des assertions et comparées à une référence (PyTorch). Les sources sont implicites (cours, documentation NumPy/PyTorch), mais le contenu est reproductible. L’adéquation titre/contenu est parfaite : le titre annonce un séminaire sur l’implémentation de CNN, et c’est exactement ce qui est traité. Aucune source externe n’est citée explicitement, mais les références à la documentation de NumPy et PyTorch sont implicites et suffisantes pour un public averti.
183 mots
Adéquation titre / contenu
Le titre annonce un séminaire sur l'implémentation de CNN, ce qui correspond exactement au contenu : implémentation de la convolution, gestion des strides, comparaison de performances.
Qualité & fiabilité
8/10
Contenu technique dense et précis, basé sur des implémentations concrètes en Python/NumPy/PyTorch. Les explications sont rigoureuses, les comparaisons de performance sont chiffrées. La démarche pédagogique est progressive et vérifiable. Quelques imprécisions mineures (facteur de ralentissement annoncé puis corrigé) mais l'ensemble est fiable.
Moments clés
Repères établis par PSI à partir de la transcription : le créateur n'a pas défini de chapitres.
- Introduction et rappel des formats de tenseurs (NHWC vs NCHW) et des dimensions des noyaux.
- Implémentation de référence avec PyTorch et mesure du temps d'exécution.
- Dérivation de la formule de convolution en 2D puis en 4D.
- Implémentation naïve avec 7 boucles, comparaison de performance (plus de 2000 fois plus lent).
- Convolution 1x1 équivalente à une couche linéaire, introduction à la multiplication matricielle.
- Implémentation par multiplication matricielle par position du noyau, performance environ 4 fois plus lente que PyTorch.
- Explication des strides en mémoire : row-major vs column-major, calcul des strides, accès aux éléments.
- Avantages des strides : slicing, transposition, broadcasting sans copie, et inconvénients (ralentissement des opérations).
- Utilisation de as_strided pour extraire des patches, exemple de découpage en blocs.
- Introduction à im2col pour rassembler les calculs en une seule multiplication matricielle.
Sources citées
- Documentation NumPy — Référence pour les fonctions numpy.lib.stride_tricks.as_strided, numpy.ndarray.strides, numpy.ascontiguousarray, etc.
- Documentation PyTorch — Référence pour les fonctions de convolution et les formats de tenseurs.
Sources concordantes
- Documentation NumPy — Les explications sur les strides et as_strided sont cohérentes avec la documentation officielle.
- Documentation PyTorch — Les formats de tenseurs et les fonctions de convolution sont conformes à la documentation.
Apport & nouveautés
L’apport principal de cette vidéo est de fournir une progression pédagogique claire sur l’implémentation de la convolution, en partant d’une version naïve jusqu’à une version optimisée, tout en expliquant les concepts sous-jacents comme les strides et la gestion mémoire. La comparaison systématique avec PyTorch permet de quantifier les gains de performance. La vidéo est utile pour les étudiants ou développeurs souhaitant comprendre les mécanismes internes des frameworks de deep learning.
Pour aller plus loin :
- im2col — Technique clé pour vectoriser la convolution, directement liée à la méthode présentée.
- Convolutional neural network — Article de référence sur les CNN, contexte général.
- NumPy strides — Documentation officielle sur les strides, concept central de la vidéo.
114 mots
Profil radar
Le profil radar montre un niveau technique très élevé (9/10), une bonne quantité et qualité d'information (8/10), et une fiabilité globale solide (8/10). La vidéo est donc très technique et dense, avec une fiabilité correcte, mais le niveau technique élevé peut limiter son accessibilité.