2017-09-28 4 views
0

Im essayant d'obtenir une carte de densité à partir de la sortie réseau de dimension 20x20x1x50. Ici 20x20 est la carte de sortie et 50 est la taille du lot.Matconvnet sortie de marix réseau profond est une valeur uniforme au lieu de varier les valeurs?

Le problème est que la valeur de la sortie X est égale à 0,098 sur chaque matrice de sortie ... 20x20. Il n'y a pas de forme gaussienne comme carte de densité mais une carte de sortie de valeur similaire plate 20x20x1x50. Le problème est illustré dans la figure ci-jointe. Qu'est-ce que j'oublie ici? La perte euclidienne pour rétropropagation est donnée comme:

enter image description here

case {'l2loss'} 
    res=(c-X); 

    n=1; 
    if isempty(dzdy) %forward 
     Y = sum((res(:).^2))/numel(res); 
    else 
     Y_= -1.*(c-X); 
     Y = 2*single (Y_ * (dzdy/n)); 
    end 

Répondre

0

trouvé la solution à https://github.com/vlfeat/matconvnet/issues/313. Query conv.var (i) .value pour voir où la valeur tombe et éditer cette couche dans le net conv. Dans mon cas je dû changer biais des couches de conv

net2.params (8) .value = 0,01 * * init_bias ceux (1, 128, 'unique'), 'partis pris' %,