Tout d'abord, il est important de comprendre ce que sont x
, y
et F
et pourquoi ils ont besoin de toute projection. Je vais essayer d'expliquer en termes simples, mais la compréhension de base de ConvNets est nécessaire.
x
est une donnée d'entrée (appelé tenseur) de la couche, en cas de ConvNets rang de c'est 4. Vous pouvez penser comme un 4-dimensional array. F
est généralement une couche de conv (conv+relu+batchnorm
dans ce document), et y
combine les deux ensemble (formant le canal de sortie). Le résultat de F
est également de rang 4, et la plupart des dimensions seront les mêmes que dans x
, sauf pour un. C'est exactement ce que la transformation devrait corriger.
Par exemple, la forme x
peut être (64, 32, 32, 3)
, où 64 correspond à la taille du lot, 32x32 à la taille de l'image et 3 aux canaux de couleur (R, G, B). F(x)
pourrait être (64, 32, 32, 16)
: taille du lot ne change jamais, pour simplifier, conv-couche ResNet ne change pas la taille de l'image aussi, mais utilisera probablement un nombre différent de filtres - 16.
Ainsi, pour y=F(x)+x
être une opération valide, x
doit être "remodelée" de (64, 32, 32, 3)
à (64, 32, 32, 16)
.
Je voudrais souligner ici que "remodeler" ici n'est pas ce que fait numpy.reshape
.
Au lieu de cela, x[3]
est rembourré avec 13 zéros, comme ceci:
pad(x=[1, 2, 3],padding=[7, 6]) = [0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0]
Si vous y pensez, cela est une projection d'un vecteur 3 dimensions sur 16 dimensions. En d'autres termes, nous commençons à penser que notre vecteur est le même, mais il y a 13 autres dimensions là-bas. Aucune des autres dimensions x
n'est modifiée.
Voici the link au code dans Tensorflow qui fait cela.
Merci beaucoup! J'ai principalement utilisé matlab plutôt que python, et il pourrait y avoir un malentendu je suppose. Dans matlab la dernière dimension est # d'image en python la première dimension est # d'image. – Troy
Je vous ai trouvé. L'ordre peut être différent, mais la projection doit être faite comme décrit dans la réponse. – Maxim
Veuillez ne pas tenir compte de ce qui précède. – Troy