8

में कस्टम लॉस फ़ंक्शन मैं एक सीएनएन का उपयोग एक फीचर एक्स्ट्रैक्टर के रूप में और वर्गीकरण के लिए पूरी तरह से जुड़े ब्लॉक के रूप में एक छवि वर्ग-वृद्धिशील क्लासिफायर दृष्टिकोण पर काम कर रहा हूं।केरास

सबसे पहले, मैंने एक नया कार्य करने के लिए एक वीजीजी प्रति प्रशिक्षित नेटवर्क की अच्छी तरह से ट्यूनिंग की। एक बार जब नेट को नए कार्य के लिए प्रशिक्षित किया जाता है, तो मैं नए वर्ग उपलब्ध होने पर भूलने से बचने के लिए प्रत्येक वर्ग के लिए कुछ उदाहरण संग्रहीत करता हूं।

जब कुछ कक्षाएं उपलब्ध हैं, तो मुझे उदाहरण के प्रत्येक आउटपुट की गणना करना है जिसमें नए वर्गों के लिए उदाहरण शामिल हैं। अब पुराने वर्गों के लिए आउटपुट में शून्य जोड़ना और नए वर्ग आउटपुट पर प्रत्येक नई कक्षा से संबंधित लेबल जोड़ना मेरे पास मेरे नए लेबल हैं, यानी: यदि 3 नए वर्ग प्रवेश करते हैं ....

पुरानी कक्षा का प्रकार आउटपुट: [0.1, 0.05, 0.79, ..., 0 0 0]

नई कक्षा प्रकार आउटपुट: [0.1, 0.09, 0.3, 0.4, ..., 1 0 0] ** अंतिम आउटपुट कक्षा से मेल खाते हैं।

मेरा सवाल यह है कि, मैं नए वर्गों के लिए प्रशिक्षित करने के लिए एक कस्टम के लिए हानि समारोह कैसे बदल सकता हूं? नुकसान समारोह है कि मैं लागू करना चाहते हैं के रूप में परिभाषित किया गया है:

loss function

जहां आसवन नुकसान वर्ष कक्षाओं के लिए आउटपुट से मेल खाती है भूल से बचने के लिए, और वर्गीकरण हानि नए वर्गों से मेल खाती है।

यदि आप मुझे कैमरा में हानि समारोह को बदलने के लिए कोड का नमूना प्रदान कर सकते हैं तो अच्छा होगा।

धन्यवाद !!!!!

उत्तर

17

आपको केवल इसके लिए एक फ़ंक्शन परिभाषित करना है, गणना के लिए केरेस बैकएंड फ़ंक्शंस का उपयोग करना। फ़ंक्शन को वास्तविक मान और मॉडल अनुमानित मान लेना चाहिए।

अब, क्योंकि मुझे यकीन नहीं है कि आपके फ़ंक्शन में जी, क्यू, एक्स एक वाई क्या है, मैं इसके बारे में सावधानी बरतने के बिना यहां मूलभूत उदाहरण बनाउंगा या यह वास्तव में उपयोगी काम है:

import keras.backend as K 

def customLoss(yTrue,yPred): 
    return K.sum(K.log(yTrue) - K.log(yPred)) 

सभी बैकएंड कार्यों यहां देखा जा सकता: https://keras.io/backend/

उसके बाद, एक नियमित रूप से एक की है कि समारोह का उपयोग कर अपने मॉडल संकलन बजाय:

model.compile(loss=customLoss, optimizer = .....) 
+0

okaay, कि वास्तव में क्या iw के रूप में देख रहे हैं, बहुत बहुत धन्यवाद !! – Eric

+0

@Daniel क्या आप इस प्रश्न को उपर्युक्त की तरह देख सकते हैं लेकिन यह लागू नहीं कर सकते कि कैसे कार्यान्वित किया जाए https://stackoverflow.com/questions/49088206/w-categorical-crossentropy-function-keras-tensorflow –

संबंधित मुद्दे