J'essaye de mettre en application le modèle d'un article scientifique, qui dit qu'ils utilisent le remplissage zéro. Est-il possible de configurer ce remplissage dans keras Conv2D ?
Seules les valeurs possibles pour le remplissage que je vois sont
padding: un de "valide" ou "identique" (insensible à la casse).
Est-il possible d'ajouter des zéros ou d'autres valeurs constantes?
"pareil" signifie zéro remplissage. Il n'est actuellement pas possible d'adapter avec d'autres constantes de manière efficace.
Lorsque vous utilisez padding='valid'
, il n'y a pas de remplissage.
Lorsque vous utilisez padding='same'
avec strides=1
, les entrées sont complétées par des zéros, de sorte que la largeur et la hauteur de la sortie soient identiques à celles de l'entrée. Comme décrit dans le document, "same" est légèrement incohérent dans les applications principales avec strides
! = 1.
Si vous voulez manuellement définir la valeur de remplissage, le moyen le plus simple consiste peut-être à ajouter un ZeroPadding2D
layer avant Conv2D
.
Par exemple, ZeroPadding2D(padding=((1,2),(3,4)))
ajoutera 1 dimension à gauche, 2 à droite, 3 en haut et 4 en bas. ZeroPadding2D(5)
ajoutera 5 dimensions sur les 4 bordures.
(au fait, c’est une couche enveloppante de la fonction backend spatial_2d_padding
)
Jetez un coup d'œil à spatial_2d_padding
function. Il remplit un tenseur avec des zéros.
Je pense que padding = 'same' signifie que si nous sommes dans un calque caché, les cellules vides que la foulée trouvera seront remplies par les valeurs du calque précédent, et non par des zéros, uniquement si le calque en entrée est rempli de zéros.