11 / 24 · Concept
Relier ReLU et regroupement maximal
Avec un point zéro de sortie uint8 de 100, appliquez ReLU et un regroupement maximal 2×2 à [98, 103;101, 97].
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
Inclure les étages de post-traitement
L’inférence peut continuer après la convolution. ReLU sélectionne le maximum de chaque valeur réelle et de zéro. Le regroupement maximal sélectionne la plus grande valeur d’une fenêtre spatiale. L’un agit élément par élément ; l’autre change la taille spatiale et nécessite une condition de fin différente. Notre chaîne requantifie, applique ReLU, puis effectue un regroupement maximal 2×2 sans remplissage avec un pas de deux. La convention de partie entière inférieure écarte une dernière ligne ou colonne incomplète.
Pour une sortie quantifiée brute, le zéro réel est le point zéro de sortie zy. Une échelle positive conserve l’ordre : ReLU utilise donc max(q, zy). Comparer les codes uint8 au zéro littéral lorsque zy=128 conserverait à tort des valeurs réelles négatives.
Chaîne détaillée
Les accumulateurs [−2, 4;6, −8] avec multiplicateur 0.5 et point zéro zéro deviennent [−1, 2;3, −4]. ReLU produit [0, 2;3, 0] et le regroupement sélectionne trois. Le sous-échantillonnage spatial et le changement d’échelle numérique sont distincts. Le regroupement maximal choisit un code existant et conserve donc son échelle dans cet exercice.
Avec le point zéro 128, les codes [126, 132;134, 120] deviennent [128, 132;134, 128] après ReLU et donnent le code 134 au regroupement. La référence reste le zéro réel même lorsque la représentation de stockage change. Un regroupement moyen introduirait division et arrondi : il n’est donc pas interchangeable avec cette implémentation.
Une fenêtre négative avant ReLU [−8, −5;−3, −6] a pour maximum −3. Insérer incorrectement zéro à une frontière remplie permet à un échantillon inexistant de gagner. Une implémentation avec remplissage doit exclure cet emplacement ou utiliser la valeur minimale spécifiée. Notre fonction exécutable de regroupement ne prend en charge aucun remplissage.
Fusionner les étages peut réduire le trafic mémoire intermédiaire, mais conservez des valeurs observables pour la vérification. Comparez séparément accumulateurs, codes requantifiés, valeurs activées et sortie regroupée. Une entrée 4×4 donne quatre valeurs regroupées ; une entrée 3×3 en donne une selon la règle de partie entière inférieure. Documentez la politique des fenêtres incomplètes dans les tests. Consultez les définitions primaires dans Relu d’ONNX et MaxPool d’ONNX.
Essayez vous-même
Avec un point zéro de sortie uint8 de 100, appliquez ReLU et un regroupement maximal 2×2 à [98, 103;101, 97].
Lire l’explication
ReLU borne au code 100, produisant [100, 103;101, 100]. Le regroupement maximal sélectionne 103 et conserve l’échelle de sortie.