डेटा स्टैंडर्डाइज़ेशन डेटासेट को एक ऐसे स्तर तक स्केल करने की क्रिया को संदर्भित करता है ताकि सभी फीचर्स को समकक्ष इकाइयों का उपयोग करके दर्शाया जा सके। रीस्केलिंग लेयर को Keras मॉड्यूल में मौजूद Rescaling मेथड का उपयोग करके बनाया जाता है। लेयर को map मेथड का उपयोग करके पूरे डेटासेट पर लागू किया जाता है।
और पढ़ें: TensorFlow क्या है और Keras, TensorFlow के साथ मिलकर न्यूरल नेटवर्क कैसे बनाता है?
हम फ्लावर्स डेटासेट का उपयोग करेंगे, जिसमें कई हजारों फूलों की छवियां होती हैं। इसमें 5 सब-डायरेक्टरीज हैं, और प्रत्येक क्लास के लिए एक सब-डायरेक्टरी है।
हम नीचे दिए गए कोड को चलाने के लिए Google Colaboratory का उपयोग कर रहे हैं। Google Colab या Colaboratory ब्राउज़र पर Python कोड चलाने में मदद करता है और इसके लिए शून्य कॉन्फ़िगरेशन और GPUs (ग्राफ़िकल प्रोसेसिंग यूनिट्स) तक मुफ्त पहुंच की आवश्यकता होती है। Colaboratory को Jupyter Notebook के ऊपर बनाया गया है।
from tensorflow.keras import layers
print("रीस्केलिंग लेयर का उपयोग करके डेटा स्टैंडर्डाइज़ किया जा रहा है")
normalization_layer = tf.keras.layers.experimental.preprocessing.Rescaling(1./255)
print("इस लेयर को डेटासेट पर map फंक्शन कॉल करके लागू किया जा सकता है")
normalized_ds = train_ds.map(lambda x, y: (normalization_layer(x), y))
image_batch, labels_batch = next(iter(normalized_ds))
first_image = image_batch[0]
print(np.min(first_image), np.max(first_image))
कोड क्रेडिट: https://www.tensorflow.org/tutorials/load_data/images
आउटपुट
रीस्केलिंग लेयर का उपयोग करके डेटा स्टैंडर्डाइज़ किया जा रहा है
इस लेयर को डेटासेट पर map फंक्शन कॉल करके लागू किया जा सकता है
0.0 0.96902645
व्याख्या
- RGB चैनल वैल्यूज 0 और 255 की रेंज में हैं।
- यह न्यूरल नेटवर्क के लिए अच्छा नहीं है।
- विचार इनपुट डेटा को जितना संभव हो उतना छोटा बनाने का है।
- इमेज में वैल्यूज को स्टैंडर्डाइज़ किया जाता है, ताकि वे 0 और 1 की रेंज में हों।
- यह रीस्केलिंग लेयर की मदद से किया जाता है।
- विकल्प यह है कि इस रीस्केलिंग लेयर को मॉडल की परिभाषा में शामिल किया जाए, जो डिप्लॉयमेंट को सरल बनाएगा।