À l'échelle de la couche dans Caffe
Je suis à la recherche par le biais de la Caffe prototxt pour la profondeur résiduelle des réseaux et ont remarqué l'apparition d'une "Scale"
couche.
layer {
bottom: "res2b_branch2b"
top: "res2b_branch2b"
name: "scale2b_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
}
Cependant, cette couche n'est pas disponible dans la Caffe couche catalogue. Quelqu'un peut m'expliquer le fonctionnement de cette couche et la signification des paramètres de point ou à une mise à jour de la documentation pour Caffe?
OriginalL'auteur Igor Ševo | 2016-05-24
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver une documentation détaillée sur caffe ici.
Plus précisément, pour
"Scale"
couche de la doc lit:Il semble que, dans votre cas, (unique "d'en bas"), cette couche apprend un facteur d'échelle à multiplier
"res2b_branch2b"
. En outre, depuisscale_param { bias_term: true }
signifie que la couche apprend pas seulement un multiplicative facteur d'échelle, mais aussi un terme constant. Ainsi, la passe en avant calcule:Au cours de la formation le net tente d'apprendre les valeurs de
\alpha
et\beta
.c'est seulement l'équivalent si
x
est 1D. Ne pas confondre le produit scalaire et la multiplication scalaire.oh ok. Puis il apprend seulement deux paramètres alpha et bêta, au lieu de l'ensemble de la matrice W dans ce cas. suis-je le droit?
oui, seulement un scalaire \alpha
Si vous le faites dans le Wolfram Langue,
Scale
est équivalent àConstantTimesLayer[]
suivie parConstantPlusLayer[]
.OriginalL'auteur Shai
Il y a aussi de la documentation dans le caffe.proto fichier, vous pouvez effectuer une recherche pour 'ScaleParameter'.
Merci un tas pour votre message 🙂 à l'Échelle de la couche était exactement ce que je cherchais. Dans le cas où quelqu'un veut un exemple pour une couche qui les échelles par un scalaire (0,5) et puis "ajoute" -2 (et ces valeurs ne devraient pas changer):
(Probablement, la decay_mult sont inutiles ici. Mais je ne sais pas. Voir les commentaires.)
Autre que cela:
première
"param {"
toujours(?) désigne le poids, le deuxième biais (lr_mult n'est pas ScaleLayer spécifique)Toutes prises de caffe.proto. Et: j'ai testé uniquement le calque au-dessus avec à la fois des valeurs de remplissage = 1.2.
Attendez, j'ai été dans le milieu de l'édition déjà, mais: je pense que decay_mult ne sont pas nécessaires, après tout. Au moins supplémentaire de régularisation conditions ne changent pas le sens de la perte ( -) de gradient. C'est parce que ces termes sont des constantes, parce que les variables impliquées (=l'échelle et de la polarisation) ne sont pas autorisés à changer. - Mais il pourrait courir plus vite avec decay_mult=0.
De toute façon, le Dharma bon vous avez évoqué le rôle de decay_mult.
OriginalL'auteur dasWesen