← Tous les exercices
Suivre la forme des cartes dans le CNN
Partie 2 · ★★★
En PyTorch, la forme d'une sortie s'écrit canaux × hauteur × largeur. Une convolution 3 × 3 avec padding 1 garde la taille (formule de la partie 1) et donne autant de canaux que de filtres ; un max pooling 2 × 2 divise la taille par 2 sans toucher aux canaux.
Pars d'une coupe (1, 28, 28) et enchaîne deux étages « convolution (16 puis 32 filtres), pooling ». Garde chaque forme dans formes (le départ, puis après chaque convolution et chaque pooling), et calcule le nombre de valeurs mises à plat, avant la couche dense.
def taille(n, k=3, p=1, s=1): return (n + 2 * p - k) // s + 1 c, h = 1, 28 formes = [(c, h, h)] for filtres in (16, 32): c = ___ h = taille(h) formes.append((c, h, h)) h = h // ___ formes.append((c, h, h)) a_plat = c * h * h params_finale = a_plat * 11 + 11
Ctrl/⌘+Entrée