Keras Conv2D and input channels : <p>The Keras layer documentation specifies the input and output sizes for convolutional layers:
<a href="https://keras.io/layers/convolutional/" rel="noreferrer">https://keras.io/layers/convolutional/</a></p>

<p>Input shape: <code>(samples, channels, rows, cols)</code></p>

<p>Output shape: <code>(samples, filters, new_rows, new_cols)</code></p>

<p>And the kernel size is a spatial parameter, i.e. detemines only width and height.</p>

<p>So an input with <code>c</code> channels will yield an output with <code>filters</code> channels regardless of the value of <code>c</code>. It must therefore apply 2D convolution with a spatial <code>height x width</code> filter and then aggregate the results somehow for each learned filter. </p>

<p>What is this aggregation operator? is it a summation across channels? can I control it? I couldn't find any information on the Keras documentation.</p>

<ul>
<li>Note that in TensorFlow the filters are specified in the depth channel as well:
<a href="https://www.tensorflow.org/api_guides/python/nn#Convolution" rel="noreferrer">https://www.tensorflow.org/api_guides/python/nn#Convolution</a>,
So the depth operation is clear.</li>
</ul>

<p>Thanks.</p>
