टेंसरफ्लो का उपयोग पहले क्लास नामों को Numpy सरणी में परिवर्तित करके और फिर 'Rescaling' मेथड का उपयोग करके नॉर्मलाइज़ेशन लेयर बनाकर किया जा सकता है, जो tf.keras.layers.experimental.preprocessing पैकेज में मौजूद है।
और पढ़ें: टेंसरफ्लो क्या है और केरस टेंसरफ्लो के साथ न्यूरल नेटवर्क बनाने में कैसे काम करता है?
एक न्यूरल नेटवर्क जिसमें कम से कम एक लेयर होती है, कन्वोल्यूशनल लेयर के रूप में जानी जाती है। हम कन्वोल्यूशनल न्यूरल नेटवर्क का उपयोग लर्निंग मॉडल बनाने के लिए कर सकते हैं।
इमेज क्लासिफिकेशन के लिए ट्रांसफर लर्निंग के पीछे अंतर्ज्ञान यह है कि यदि कोई मॉडल बड़े और सामान्य डेटासेट पर प्रशिक्षित है, तो यह मॉडल दृश्य दुनिया के लिए एक सामान्य मॉडल के रूप में प्रभावी ढंग से काम कर सकता है। इसने फीचर मैप सीखे होंगे, जिसका अर्थ है कि उपयोगकर्ता को बड़े डेटासेट पर बड़े मॉडल को प्रशिक्षित करके स्क्रैच से शुरू नहीं करना पड़ेगा।
टेंसरफ्लो हब एक रिपॉजिटरी है जिसमें प्री-ट्रेंड टेंसरफ्लो मॉडल होते हैं। टेंसरफ्लो का उपयोग लर्निंग मॉडल को फाइन-ट्यून करने के लिए किया जा सकता है।
हम समझेंगे कि tf.keras के साथ टेंसरफ्लो हब से मॉडल का उपयोग कैसे करें, टेंसरफ्लो हब से एक इमेज क्लासिफिकेशन मॉडल का उपयोग करें। एक बार यह हो जाने के बाद, कस्टमाइज़्ड इमेज क्लास के लिए मॉडल को फाइन-ट्यून करने के लिए ट्रांसफर लर्निंग किया जा सकता है। यह एक प्री-ट्रेंड क्लासिफायर मॉडल का उपयोग करके एक इमेज लेता है और भविष्यवाणी करता है कि यह क्या है। यह बिना किसी प्रशिक्षण की आवश्यकता के किया जा सकता है।
हम नीचे दिए गए कोड को चलाने के लिए Google Colaboratory का उपयोग कर रहे हैं। Google Colab या कोलेबोरेटरी ब्राउज़र पर पायथन कोड चलाने में मदद करता है और इसके लिए शून्य कॉन्फ़िगरेशन और GPU (ग्राफिकल प्रोसेसिंग यूनिट्स) तक मुफ्त पहुंच की आवश्यकता होती है। कोलेबोरेटरी को जुपिटर नोटबुक के शीर्ष पर बनाया गया है।
उदाहरण
print("इसमें 5 क्लास हैं")
class_names = np.array(train_ds.class_names)
print(class_names)
print("एक नॉर्मलाइज़ेशन लेयर बनाई गई है")
normalization_layer = tf.keras.layers.experimental.preprocessing.Rescaling(1./255)
train_ds = train_ds.map(lambda x, y: (normalization_layer(x), y))
कोड क्रेडिट - https://www.tensorflow.org/tutorials/images/transfer_learning_with_hub
आउटपुट
इसमें 5 क्लास हैं ['daisy' 'dandelion' 'roses' 'sunflowers' 'tulips'] एक नॉर्मलाइज़ेशन लेयर बनाई गई है
व्याख्या
TFHub के कन्वेंशन के अनुसार मॉडल इमेज के लिए [0, 1] रेंज में फ्लोट इनपुट की आवश्यकता होती है।
Rescaling लेयर का उपयोग इसे प्राप्त करने के लिए किया जा सकता है।
बफर्ड प्रीफेचिंग का उपयोग किया जा सकता है ताकि डेटा को I/O ब्लॉकिंग के बिना डिस्क से लिया जा सके।