11 / 24 · Concepto
Conecta ReLU y agrupación máxima
Con punto cero de salida uint8 de 100, aplica ReLU y agrupación máxima 2×2 a [98,103;101,97].
Las lecciones se pueden leer gratis. Inscríbete para guardar el progreso.
Incluye las etapas de posprocesamiento
La inferencia puede continuar más allá de la convolución. ReLU selecciona el mayor de cada valor real y cero. La agrupación máxima selecciona el mayor valor de una ventana espacial. Una opera elemento a elemento; la otra cambia el tamaño espacial y necesita una condición de finalización distinta. Nuestra ruta recuantiza, aplica ReLU y después realiza agrupación máxima 2×2 sin relleno y con paso dos. La convención de redondeo hacia abajo descarta una última fila o columna incompleta.
Para la salida cuantizada bruta, el cero real es el punto cero de salida zy. Una escala positiva conserva el orden, así que ReLU usa max(q,zy). Comparar códigos uint8 con el cero literal cuando zy=128 conservaría incorrectamente valores reales negativos.
Cadena resuelta
Los acumuladores [−2,4;6,−8] con multiplicador 0.5 y punto cero cero pasan a [−1,2;3,−4]. ReLU produce [0,2;3,0] y la agrupación selecciona tres. La reducción espacial y el cambio de escala numérica son ideas independientes. La agrupación máxima elige un código existente y, por tanto, conserva su escala en este ejercicio.
Con punto cero 128, los códigos [126,132;134,120] pasan a [128,132;134,128] después de ReLU y se agrupan en el código 134. La referencia sigue siendo el cero real incluso cuando cambia la representación almacenada. La agrupación media introduciría división y redondeo, por lo que no es intercambiable con esta implementación.
Una ventana negativa anterior a ReLU [−8,−5;−3,−6] tiene máximo −3. Insertar incorrectamente cero en un borde de relleno permite ganar a una muestra inexistente. Una implementación con relleno debe excluir esa ubicación o usar el valor mínimo especificado. Nuestra función ejecutable de agrupación no admite relleno.
Fusionar etapas puede reducir el tráfico de memoria intermedia, pero conserva valores observables para la verificación. Compara por separado acumuladores, códigos recuantizados, valores activados y salida agrupada. Una entrada 4×4 produce cuatro valores agrupados; una entrada 3×3 produce uno con la regla de redondeo hacia abajo declarada. Documenta la política de ventanas incompletas en las pruebas. Consulta las definiciones primarias en ONNX Relu y ONNX MaxPool.
Inténtalo tú
Con punto cero de salida uint8 de 100, aplica ReLU y agrupación máxima 2×2 a [98,103;101,97].
Leer la explicación
ReLU limita al código 100 y produce [100,103;101,100]. La agrupación máxima selecciona 103 y conserva la escala de salida.