से कक्षा लेबल प्राप्त करें मेरे पास केरास में एक कार्यात्मक मॉडल है (रेपो उदाहरणों से Resnet50)। मैंने इसे ImageDataGenerator
और flow_from_directory
डेटा और सहेजे गए मॉडल .h5
फ़ाइल के साथ प्रशिक्षित किया। जब मैं model.predict
पर कॉल करता हूं तो मुझे कक्षा की संभावनाओं की एक सरणी मिलती है। लेकिन मैं उन्हें कक्षा लेबल (मेरे मामले में - फ़ोल्डर नाम) से जोड़ना चाहता हूं। मैं उन्हें कैसे प्राप्त कर सकता हूं? मैंने पाया कि मैं model.predict_classes
और model.predict_proba
का उपयोग कर सकता हूं, लेकिन मेरे पास इन कार्यों को केवल कार्यात्मक मॉडल में नहीं है, केवल अनुक्रमिक में।केरास कार्यात्मक मॉडल
उत्तर
अद्यतन: यह अब नए केरा संस्करणों के लिए मान्य नहीं है। एमिलिया अपोस्टोलोवा के उत्तर में कृपया argmax()
का उपयोग करें।
कार्यात्मक एपीआई मॉडल में केवल predict()
फ़ंक्शन है जो वर्गीकरण के लिए कक्षा की संभावनाओं को वापस कर देगा। फिर आप probas_to_classes()
उपयोगिता फ़ंक्शन का उपयोग करके सबसे संभावित कक्षाओं का चयन कर सकते हैं। उदाहरण:
y_proba = model.predict(x)
y_classes = keras.np_utils.probas_to_classes(y_proba)
यह अनुक्रमिक मॉडल पर model.predict_classes(x)
के बराबर है।
इसका कारण यह है कि कार्यात्मक एपीआई कार्यों के अधिक सामान्य वर्ग का समर्थन करता है जहां predict_classes()
समझ में नहीं आता है।
और जानकारी: https://github.com/fchollet/keras/issues/2524
जब कोई प्रवाह_from_directory का उपयोग करता है तो समस्या संभाव्यता आउटपुट की व्याख्या कैसे करें। जैसा कि, संभाव्यता आउटपुट और क्लास लेबल्स को कैसे मैप करना है, जैसे प्रवाह_from_directory एक-गर्म वैक्टर बनाता है, पहले से ज्ञात नहीं है।
हम एक शब्दकोश है कि भविष्यवाणी वेक्टर के सूचकांक है कि हम उत्पादन जब हम
generator= train_datagen.flow_from_directory("train", batch_size=batch_size)
label_map = (generator.class_indices)
label_map चर का उपयोग के रूप में प्राप्त करने के लिए वर्ग लेबल नक्शे प्राप्त कर सकते हैं इस
{'class_14': 5, 'class_10': 1, 'class_11': 2, 'class_12': 3, 'class_13': 4, 'class_2': 6, 'class_3': 7, 'class_1': 0, 'class_6': 10, 'class_7': 11, 'class_4': 8, 'class_5': 9, 'class_8': 12, 'class_9': 13}
की तरह एक शब्दकोश है
तब से संबंध संभाव्यता स्कोर और कक्षा के नामों के बीच प्राप्त किया जा सकता है।
असल में, आप इस कोड को इस कोड द्वारा बना सकते हैं।
from glob import glob
class_names = glob("*") # Reads all the folders in which images are present
class_names = sorted(class_names) # Sorting them
name_id_map = dict(zip(class_names, range(len(class_names))))
उपरोक्त कोड में चर name_id_map भी एक flow_from_directory की class_indices समारोह से प्राप्त के रूप में ही शब्दकोश में शामिल है।
आशा है कि इससे मदद मिलती है!
- 1. केरास मॉडल
- 2. केरास
- 3. केरास
- 4. टेंसरफ्लो/केरास बहु-थ्रेडेड मॉडल फिटिंग
- 5. केरास
- 6. केरास
- 7. केरास
- 8. केरास
- 9. केरास
- 10. केरास
- 11. केरास
- 12. कार्यात्मक भाषा मॉडल दुष्प्रभाव कैसे करते हैं?
- 13. केरास टेक्स्ट प्रीप्रोसेसिंग -
- 14. सहायक इनपुट के साथ केरास में एलएसटीएम मॉडल
- 15. केरास, स्पैस मैट्रिक्स समस्या
- 16. केरास सटीकता
- 17. कार्यात्मक प्रोग्रामिंग
- 18. टाइमडिस्ट्रिब्यूटेड बनाम टाइमडिस्ट्रिब्यूटेड डेंस केरास
- 19. कार्यात्मक
- 20. क्या कोई कार्यात्मक मॉडल की तरह कुछ है?
- 21. केरास - categorical_accuracy और sparse_categorical_accuracy
- 22. केरास: एक गर्म एन्कोडिंग
- 23. केरास - प्रत्येक इनपुट-न्यूरॉन
- 24. केरास कस्टम आरएमएसएल मीट्रिक
- 25. केरास और टेंसरफ्लो
- 26. केरास + इंडेक्स एरर
- 27. केरास में प्रजनन
- 28. केरास + टेन्सफोर्लो: एकाधिक gpus पर भविष्यवाणी
- 29. केरास में टेन्सफोर्लो परतों का उपयोग
- 30. क्या केरास थ्रेड सुरक्षित है?
वर्तमान में, np.utils.py के लिए कोड (देखें https://github.com/fchollet/keras/blob/master/keras/utils/np_utils.py) में probas_to_classes विधि नहीं है। क्या उन्होंने इसे किसी अन्य समारोह में बदल दिया? क्रिप्या मेरि सहायता करे। – noobalert
मेरे पास @noobalert के समान समस्या है, इसमें फ़ंक्शन नहीं है। –
उपयोग 'y_classes = y_proba.argmax (अक्ष = -1)' बजाय – Zach