2 votes

BatchNormalization compte-t-il comme une couche dans un réseau ?

BatchNormalizationLayer est-il considéré comme une couche dans un réseau neuronal ? Par exemple, si nous disons que Resnet50 possède 50 couches, cela signifie-t-il que certaines de ces couches peuvent être des couches de normalisation de lot ?

Lorsque je construisais des modèles dans Keras, je le considérais comme un supplément, similaire à une couche d'exclusion ou à l'ajout d'une "couche d'activation". Mais BatchNormalization a des paramètres entraînables, donc... Je suis confus

0voto

Tinu Points 1819

Cela dépend vraiment de la précision avec laquelle vous définissez ce qu'est une "couche". Cela peut varier selon les auteurs.

Pour votre ResNet l'exemple est assez clair : dans la section 3.4 Mise en œuvre vous trouverez une description du réseau, il y est dit :

Nous adoptons la normalisation par lots (BN) juste après chaque convolution et avant l'activation, [...].

Ainsi, la convolution et la normalisation par lots sont considérées comme une seule couche. La figure 3. de l'article montre une image de ResNet34 où les couches de normalisation par lots ne sont même pas explicitement montrées et où la somme des couches est de 34.

En conclusion, l'article de ResNet ne considère pas la normalisation des lots comme une couche supplémentaire.

De plus, Keras permet de vérifier facilement ces choses pour de nombreuses modèles pré-entraînés par exemple :

import tensorflow as tf
resnet = tf.keras.applications.ResNet50()
print(resnet.summary())

0voto

Hossein Points 1789

Dans la littérature sur le DeepLearning, un X Le réseau à couches fait simplement référence à l'utilisation de couches apprenables qui constituent la capacité de représentation du réseau.
Les couches d'activation, les couches de normalisation (telles que NLR, BatchNorm, etc.), les couches de sous-échantillonnage (telles que Maxpooling, etc.) ne sont pas prises en compte.

Des couches telles que CNN , RNN , FC et les likes qui sont responsables de la capacité de représentation du réseau sont comptés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X