Estoy buscando una buena explicación de cómo funcionan las convoluciones en el aprendizaje profundo cuando se aplican a imágenes multicanal. Por ejemplo, supongamos que tengo una imagen de 100 x 100 píxeles con tres canales, RGB. El tensor de entrada tendría entonces dimensiones de 100 x 100 x 3.
Si aplico una convolución con N filtros y una zancada de uno, la dimensión de salida será:
100 x 100 x 3 x N?
o
100 x 100 x N?
En otras palabras, ¿la convolución que se aplica "aplana" la imagen, o la convolución se aplica canal por canal?
fuente
Depende de la cantidad de filtros que elija. Digamos que ha elegido 64 filtros.
su tensor de peso tendrá forma [3, 3, 3, 64] (3er 3 es el número de canales en la capa de entrada y 64 es el número de canales en la capa de salida) y forma de tensor de polarización [64]
la salida será si Pad = "SAME" y stride 1 para una imagen de entrada de 224 * 224 * 3 = 224 * 224 * 64
la salida será si Pad = "Valid" y stride 1 para una imagen de entrada de 224 * 224 * 3 = 221 * 221 * 64
Ahora con una entrada de 221 * 221 * 64 si desea crear 128 filtros en la siguiente capa, su forma de vector de peso será [3, 3, 64, 128] y la forma de vecotr sesgo será [128]
y forma de salida - si Pad = "MISMO" [221, 221, 128] - si Pad = "VÁLIDO" [198, 198, 128] considerando zancada = [1,1,1,1]
puede verificar estos resultados mientras construye el gráfico usando layername.get_shape ().
fuente
La dimensión de salida de una convolución en el aprendizaje profundo depende de múltiples factores
La dependencia más simple es la del número de filtros
N
. Le da la cantidad de mapas de características que tiene su salida. Para la entrada que pueden ser los canales RGB, es decir, 3, para la salida, este número se puede elegir libremente.El siguiente factor es el relleno cero. Si utiliza un tamaño de filtro de (3,3) y un relleno "válido", es decir, sin agregar ceros alrededor de la imagen, terminará con una salida de dimensión.
Porque usa un paso de 1. Si mueve el filtro a través de la imagen al final de la imagen en cada dirección, el filtro tocará el borde después de 98 pasos.
Sin embargo, si utiliza el relleno "SAME", compensa el tamaño del filtro, en el caso de un tamaño de filtro de (3,3) que correspondería a una línea de ceros alrededor de la imagen, terminará con:
Con una zancada de 2, por ejemplo, cambia la posición del filtro en dos píxeles. Por lo tanto, obtienes
fuente
Los tres canales RGB están convolucionados por diferentes núcleos y se agregan en cada mapa de características. Entonces, tendrá 100 x 100 x N como salida de la primera capa.
fuente