<p>As the number of filters e.g. 32, 64, 128, 1024 is a design decision, the model designer decides the number of filters to use. In this case, you. Typically powers of 2 is used 2^5 = 32, 2^6 = 64 etc. Different number of filters would obviously have an impact on the number of operations required for computation in addition to impacting the number of parameters that the model will have to learn. </p>

<p>e.g. 10 filters with dimension 5x5x1 (height x width x channels) would have (5 x 5 x 1 + 1) x 10 = 110 parameters to train. Note that + 1 is for the bias term.</p>

<p>I suggest reading the below in particular the section on ConvNet architectures.
<a href="http://cs231n.github.io/convolutional-networks/#architectures" rel="nofollow noreferrer">http://cs231n.github.io/convolutional-networks/#architectures</a></p>

<p>For convolutional arithmetic I found "A guide to convolution arithmetic for deep learning" resourceful: <a href="https://arxiv.org/abs/1603.07285" rel="nofollow noreferrer">https://arxiv.org/abs/1603.07285</a></p>
CNN: understanding weights output channel argument
<pre class="lang-py prettyprint-override"><code>weights = {
  # 5x5 conv, 1 input, 32 outputs
  'wc1': tf.Variable(tf.random_normal([5, 5, 1, 32])),
  # 5x5 conv, 32 inputs, 64 outputs
  'wc2': tf.Variable(tf.random_normal([5, 5, 32, 64])),
  # fully connected, 7*7*64 inputs, 1024 outputs
  'wd1': tf.Variable(tf.random_normal([7*7*64, 1024])),
  # 1024 inputs, 10 outputs (class prediction)
  'out': tf.Variable(tf.random_normal([1024, num_classes]))
}
</code></pre>

<p>My question is:
how do I calculate number of feature/channel output, in this case it's 32 in first layer, 64 in second and 1024 in third? And what effect will it make  if I add more or less number than 32, 64, 1024 in my CNN?</p>