(इमेज, लेबल) जोड़ी बनाने के लिए, पाथ को पहले पाथ कंपोनेंट्स की सूची में परिवर्तित किया जाता है। फिर, दूसरा अंतिम मान डायरेक्टरी में जोड़ा जाता है। फिर, लेबल को इंटीजर फॉर्मेट में एन्कोड किया जाता है। कंप्रेस्ड स्ट्रिंग को टेंसर में परिवर्तित किया जाता है, और फिर आवश्यक आकार में रीशेप किया जाता है।
और पढ़ें: TensorFlow क्या है और Keras, TensorFlow के साथ मिलकर न्यूरल नेटवर्क कैसे बनाता है?
हम फ्लावर्स डेटासेट का उपयोग करेंगे, जिसमें कई हजारों फूलों की छवियां होती हैं। इसमें 5 सब-डायरेक्टरीज हैं, और प्रत्येक क्लास के लिए एक सब-डायरेक्टरी है।
हम नीचे दिए गए कोड को चलाने के लिए Google Colaboratory का उपयोग कर रहे हैं। Google Colab या Colaboratory ब्राउज़र पर Python कोड चलाने में मदद करता है और इसके लिए शून्य कॉन्फ़िगरेशन और GPUs (ग्राफ़िकल प्रोसेसिंग यूनिट्स) तक मुफ्त पहुंच की आवश्यकता होती है। Colaboratory को Jupyter Notebook के ऊपर बनाया गया है।
print("फाइल पाथ को (इमेज,लेबल) जोड़ी में बदलने के लिए फंक्शन")
print("सबसे पहले, पाथ को पाथ कंपोनेंट्स की सूची में परिवर्तित किया जाता है")
print("फिर, दूसरा अंतिम मान क्लास डायरेक्टरी में जोड़ा जाता है")
print("लेबल को इंटीजर एन्कोड किया जाता है")
def get_label(file_path):
parts = tf.strings.split(file_path, os.path.sep)
one_hot = parts[-2] == class_names
return tf.argmax(one_hot)
print("कंप्रेस्ड स्ट्रिंग को 3-डायमेंशनल इंट टेंसर में परिवर्तित किया जाता है")
print("इमेज को आवश्यक आकार में रीसाइज़ किया जाता है")
def decode_img(img):
img = tf.image.decode_jpeg(img, channels=3)
return tf.image.resize(img, [img_height, img_width])
print("रॉ डेटा को फाइल से स्ट्रिंग वैल्यू के रूप में लोड किया जाता है")
def process_path(file_path):
label = get_label(file_path)
img = tf.io.read_file(file_path)
img = decode_img(img)
return img, label
कोड क्रेडिट: https://www.tensorflow.org/tutorials/load_data/images
आउटपुट
फाइल पाथ को (इमेज,लेबल) जोड़ी में बदलने के लिए फंक्शन
सबसे पहले, पाथ को पाथ कंपोनेंट्स की सूची में परिवर्तित किया जाता है
फिर, दूसरा अंतिम मान क्लास डायरेक्टरी में जोड़ा जाता है
लेबल को इंटीजर एन्कोड किया जाता है
कंप्रेस्ड स्ट्रिंग को 3-डायमेंशनल इंट टेंसर में परिवर्तित किया जाता है
इमेज को आवश्यक आकार में रीसाइज़ किया जाता है
रॉ डेटा को फाइल से स्ट्रिंग वैल्यू के रूप में लोड किया जाता है
व्याख्या
- एक 'get_label' फंक्शन परिभाषित किया जाता है, जो फाइल पाथ को (इमेज,लेबल) जोड़ी में बदलता है।
- फाइल पाथ को पाथ कंपोनेंट्स की सूची में परिवर्तित किया जाता है।
- दूसरा अंतिम मान क्लास डायरेक्टरी में जोड़ा जाता है।
- अगला, लेबल को इंटीजर के रूप में एन्कोड किया जाता है।
- 'decode_img' नामक एक अन्य फंक्शन का उपयोग इमेज को रीसाइज़ करने और वापस करने के लिए किया जाता है।
- सबसे पहले कंप्रेस्ड स्ट्रिंग को तीन-आयामी इंटीजर टेंसर में परिवर्तित किया जाता है, और फिर रीसाइज़ किया जाता है।
- 'process_path' नामक एक अन्य फंक्शन परिभाषित किया जाता है, जो फाइल से रॉ डेटा को स्ट्रिंग वैल्यू के रूप में लोड करता है।