मैं वर्तमान में कैफे में अपनी खुद की हानि परत को लागू करने की कोशिश कर रहा हूं, और ऐसा करने का प्रयास करते समय, संदर्भ के रूप में अन्य परतों का उपयोग कर रहा हूं। एक चीज जो मुझे पहेली बनाती है, का उपयोग Backward_cpu
में है। मैं संदर्भ के रूप में EuclideanLossLayer
का उपयोग करूँगा। यहाँ मेरी सवाल कर रहे हैंकैफे में यूक्लिडियन लॉस लेयर
यह मेरी समझ है कि
top[0]->cpu_diff()
रखती अगले परत से त्रुटि व्युत्पन्न है, लेकिन क्या कोई अन्य परत होती है, तो यह कैसे initialised है? के बाद से यहEuclideanLossLayer
में किसी भी चेक के बिना प्रदर्शन किया जाता है: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
:
const Dtype alpha = sign * top[0]->cpu_diff()[0]/bottom[i]->num();
फिर,
EuclideanLossLayer
में, सक्रियण के संबंध में त्रुटि के लिए व्युत्पन्न निम्नलिखित कोड का टुकड़ा का उपयोग कर गणना की जाती है अगर मेरी पहली धारणा सही है, औरtop[0]->cpu_diff()
वास्तव में उपर्युक्त परत के लिए त्रुटि व्युत्पन्न करता है, तो हम पूरे वेक्टर यानीtop[0]->cpu_diff()
द्वारा गुणा करने के विरोध में केवल पहले तत्व यानीtop[0]->cpu_diff()[0]
का उपयोग क्यों करते हैं?