1 / 24 · Concepto
Inferencia y entrenamiento
Si solo aumentan los canales de salida de tres a seis, ¿cómo cambian el número de MAC y el de sesgos almacenados?
Las lecciones se pueden leer gratis. Inscríbete para guardar el progreso.
Define el cálculo antes de la ruta de datos
La inferencia aplica pesos fijos, elegidos previamente, a una entrada en una pasada hacia delante. El entrenamiento también calcula una pérdida, propaga gradientes y actualiza pesos. Por tanto, un circuito que realiza convolución hacia delante demuestra una operación de inferencia; por sí solo no demuestra entrenamiento. Este curso construye una pequeña ruta de inferencia entera. El hardware de gradientes, los optimizadores, la precisión de clasificación y la importación automática de modelos quedan fuera de los ejercicios.
Escribe un contrato para el lote N, los canales de entrada C, las dimensiones espaciales H y W, los canales de salida M y el núcleo de R por S. Usamos el orden NCHW. Un elemento de salida convencional acumula C×R×S productos. Para una salida de dimensiones N×M×Ho×Wo, cuenta N×M×Ho×Wo×C×R×S MAC. Aquí una MAC significa una multiplicación con acumulación. Un informe de operaciones en coma flotante puede contar la multiplicación y la suma por separado, así que indica la regla de recuento antes de comparar informes.
Ejemplo resuelto
Toma N=1, C=2, H=W=5, M=3 y un núcleo 3×3, con paso uno y sin relleno. La salida espacial es 3×3. Hay 27 elementos de salida, cada uno de los cuales acumula 18 productos, para un total de 486 MAC. Un vector de sesgos contiene tres números almacenados, uno por canal de salida, pero el sesgo se añade en 27 posiciones de salida. Informa de esas sumas por separado en lugar de cambiar silenciosamente la definición de MAC.
El orden forma parte de la corrección. Una lectura de entrada con los canales primero combinada con una interpretación de los pesos con las posiciones espaciales primero empareja los operandos equivocados, aunque todos los valores sean legales. Etiqueta las salidas de referencia con las coordenadas de canal y espaciales. Empieza con un lote, especifica cada archivo de tensor y amplía la dimensión de lote solo después de estabilizar el contrato básico.
Registra las dimensiones admitidas, los pasos, el relleno y los intervalos numéricos. Rechaza explícitamente las solicitudes no admitidas. Una matriz flexible de software no prueba que una implementación RTL admita todos los tamaños. Del mismo modo, una salida de referencia no puede medir frecuencia, potencia ni precisión del modelo. Los ejercicios posteriores distinguen los valores exactos de una estimación de ciclos con supuestos declarados. Para las etapas hacia delante, hacia atrás y de actualización del entrenamiento, consulta el tutorial oficial de PyTorch.
Inténtalo tú
Si solo aumentan los canales de salida de tres a seis, ¿cómo cambian el número de MAC y el de sesgos almacenados?
Leer la explicación
Hay 54 salidas y 54×18=972 MAC. Almacena seis sesgos. El tamaño de entrada permanece igual; el almacenamiento de pesos se duplica.