<p>It really depends on how precise you define what a &quot;layer&quot; is. This may vary for different authors.</p>
<p>For your <a href="https://arxiv.org/pdf/1512.03385.pdf" rel="nofollow noreferrer">ResNet</a> example it is pretty clear: In Section 3.4 <em>Implementation</em> you'll a description of the network, there it say's:</p>
<blockquote>
<p>We adopt batch normalization (BN) right after each convolution and
before activation, [...].</p>
</blockquote>
<p>So convolution and batch normalization is considered as a single layer. Figure 3. in the paper shows a picture of ResNet34 where the batch normalization layers are not even explicitly shown and the layers sum up to 34.</p>
<p>So in conclusion, the ResNet paper does not count batch normalization as extra layer.</p>
<p>Further Keras makes it really easy to check those things for many <a href="https://keras.io/api/applications/" rel="nofollow noreferrer">pretrained models</a>, e.g.:</p>
<pre class="lang-py prettyprint-override"><code>import tensorflow as tf
resnet = tf.keras.applications.ResNet50()
print(resnet.summary())
</code></pre>
Does BatchNormalization count as a layer in a network?
<p>Is BatchNormalizationLayer considered a layer in a neural network?
For example, if we say, Resnet50 has 50 layers, does that mean that some of those layers may be batchnormalization layers?</p>
<p>When building models in Keras I considered it as an extra, similar to a dropout layer or when adding an “Activation layer”. But BatchNormalization  has trainable parameters, so... I am confused</p>