La mayoría de las funciones en la biblioteca CuDNN tienen implementaciones sencillas, excepto la implementación de la operación de convolución, que se transforma en una sola multiplicación de matriz, según este documento de Nvidia cuDNN; primitivas efectivas para el aprendizaje profundo, 2014
La idea básica es convertir la operación de convolución de, digamos un solo filtro, que es esencialmente
- un movimiento deslizante del filtro sobre los datos de entrada donde en cada posición de la operación de deslizamiento, hacemos una operación de multiplicación y suma de los datos de entrada debajo de la ventana deslizante del filtro con los elementos del filtro, en
- una operación de multiplicación “duplicando” los datos de entrada, como los datos de entrada debajo del filtro para cada posición se despliegan.
Figura del artículo mencionado anteriormente
- ¿Qué está sucediendo en este gráfico de pérdida de precisión de la red?
- ¿De qué manera las competencias de minería de datos y aprendizaje automático ayudan / restan valor a estos campos académicos y sus aplicaciones comerciales?
- ¿Pueden las redes neuronales resolver problemas de optimización?
- ¿Dónde puedo encontrar guías de aprendizaje automático desde la perspectiva de los hackers?
- ¿Cómo funciona el soporte de regresión vectorial?
Esta idea de desarrollo se basa en este documento a continuación, donde es mucho más claro
Figura de redes neuronales convolucionales de alto rendimiento para el procesamiento de documentos
La salida de la operación de convolución regular se muestra en las dos matrices en la parte superior de la figura. El mismo resultado se obtiene al desplegar la entrada que cae bajo los datos de la ventana deslizante de los filtros como se muestra en la matriz inferior izquierda: los resultados se encuentran en la parte inferior derecha, que es lo mismo que las dos matrices superiores reformadas.