2015-06-28 20 views
8

Şu anda kendi kaybı katmanımı kafein içinde uygulamaya çalışıyorum ve bunu yapmaya çalışırken, diğer katmanları referans olarak kullanıyorum. Bununla birlikte, beni şaşırtan bir şey, Backward_cpu numaralı telefondan top[0]->cpu_diff() kullanımıdır. Referans olarak EuclideanLossLayer kullanıyorum. İşte benim sorularıCaffe'de Euclidean Loss Katmanı

  • Anladığım kadarıyla bu bir sıfırlanır nasıl top[0]->cpu_diff() hata sonraki katmandan türevi, ancak başka tabaka varsa ne tutmasıdır nelerdir? herhangi bir kontroller olmaksızın EuclideanLossLayer kullanıldığı için:

    const Dtype alpha = sign * top[0]->cpu_diff()[0]/bottom[i]->num(); 
    caffe_cpu_axpby(
        bottom[i]->count(),    // count 
        alpha,        // alpha 
        diff_.cpu_data(),     // a 
        Dtype(0),       // beta 
        bottom[i]->mutable_cpu_diff()); // b 
    

    : EuclideanLossLayer olarak,

    const Dtype alpha = sign * top[0]->cpu_diff()[0]/bottom[i]->num(); 
    
  • Yine, aktivasyon ile ilgili hata için türevinin aşağıdaki kod parçası kullanılarak hesaplanır İlk varsayım doğruysa ve top[0]->cpu_diff() gerçekten de yukarıdaki katman için hata türevini tutuyorsa, neden sadece tüm elemanın yani top[0]->cpu_diff() tüm vektör tarafından çarpılmasının aksine top[0]->cpu_diff()[0] ilk elemanını kullanıyoruz?

    zarar katmanları için

cevap

13

, bir sonraki tabaka vardır ve bu nedenle en iyi fark damla teknik tanımlanmamış ve kullanılmamış - ama Caffe ilgisiz veri depolamak için bu önceden tahsis edilen alanlara alanı kullanarak: Caffe'de Kullanıcı tarafından sahip kaybı katmanları çarpılarak destekler tanımlı ağırlık (prototxt'deki loss_weight), bu bilgi (tek bir skaler kayan nokta sayısı) üst blobun diff dizisinin ilk elemanında saklanır. Bu yüzden her bir kayıp katmanında göreceksiniz, bu işlevi desteklemek için bu miktarla çarpıyorlar. Bu Caffe's tutorial about the loss layer'da açıklanmıştır. Bu ağırlık genellikle ağda yardımcı kayıplar eklemek için kullanılır. Bununla ilgili daha fazla bilgiyi Google'ın Going Deeper with Convoltions numaralı telefonundan veya Deeply-Supervised Nets numaralı telefondan okuyabilirsiniz.

İlgili konular