Project DelphiTaller de Tensores

La convolución y sus tres modos

La convolución desliza un arreglo pequeño — el kernel o filtro — sobre uno más grande, multiplicando y sumando en cada posición. Es la operación en el corazón de toda red neuronal convolucional, y es también como funciona todo filtro de desenfoque, enfoque y detección de bordes.

x = np.array([1., 2., 3., 4., 5.]) k = np.array([1., 0., -1.]) np.convolve(x, k, 'full') # longitud 5+3-1 = 7 np.convolve(x, k, 'valid') # longitud 5-3+1 = 3 np.convolve(x, k, 'same') # longitud 5

valid usa solo las posiciones donde el kernel cabe completamente: por eso la convolución encoge una imagen en kernel_size - 1.

Con el recorte real de 160×160 del cuaderno 13 y el kernel Sobel de 3×3: valid da 158×158, same da 160×160 y full da 162×162.