0

J'ai 128 carte de fonction avec la taille 32x32. Je veux suréchantillonner/déconvolution à 8x256x256, où 8 est le nombre de sortie de la carte de fonctionnalité. J'ai utilisé la couche Deconvolution dans CAFFE pour faire la tâche.Un grand différent de la perte initiale (itération = 0) entre le choix de l'initialisation du poids. Pourquoi?

layer { 
    name: "Deconvolution1" 
    type: "Deconvolution" 
    bottom: "layer1" 
    top: "Deconvolution1" 
    param { 
    lr_mult: 1 
    decay_mult: 1 
    } 
    convolution_param { 
    num_output: 8 
    bias_term: false 
    pad: 0 
    kernel_size: 8 
    stride: 8 
    weight_filler { 
     type: "msra" 
    } 
    } 
} 

Dans mon établissement, j'ai utilisé weight_filter est msra, parce que je me suis entraîné mon réseau à partir de zéro. J'ai également essayé avec un autre filtre, comme gaussian avec std = 0.01. Les résultats montrent un grand différent à la perte initiale. Avec msra, ma perte initiale est de 6,5, tandis qu'avec le gaussien, elle est de 1,2. Quelque chose ne va pas? Ma perte attendue au départ est inférieure à 2. Merci à tous

Répondre

1

La perte initiale est négligeable. Oui, une différence aléatoire peut la modifier de manière significative. Je vois une différence de 20% assez souvent, en utilisant le même filtre initial dans une topologie de référence (vis AlexNet).

La question est de savoir comment le modèle s'entraîne. Si votre perte tombe aux intervalles attendus dans une époque ou deux, et continue une tendance générale à la baisse jusqu'à la convergence, alors vous avez une approche viable.