1. खास जानकारी
इस लैब में, आपको Keras क्लासिफ़ायर बनाने का तरीका पता चलेगा. फूलों की पहचान करने के लिए, न्यूरल नेटवर्क लेयर के सही कॉम्बिनेशन का पता लगाने के बजाय, हम सबसे पहले ट्रांसफ़र लर्निंग नाम की तकनीक का इस्तेमाल करेंगे. इससे हमारे डेटासेट के लिए, पहले से ट्रेनिंग देने वाले ताकतवर मॉडल को अपनाया जा सकेगा.
इस लैब में, न्यूरल नेटवर्क के बारे में ज़रूरी सैद्धांतिक जानकारी दी गई है. यह डीप लर्निंग के बारे में जानने वाले डेवलपर के लिए एक अच्छा शुरुआती पॉइंट है.
यह लैब, "TPU पर Keras" सीरीज़ का दूसरा हिस्सा है. इन चरणों को नीचे दिए गए क्रम में या अलग-अलग क्रम में पूरा किया जा सकता है.
- टीपीयू की स्पीड वाली डेटा पाइपलाइन: tf.data.Dataset और TFRecords
- [THIS LAB] ट्रांसफ़र लर्निंग के साथ आपका पहला Keras मॉडल
- Keras और TPU के साथ कॉन्वोल्यूशनल न्यूरल नेटवर्क
- Keras और TPU के साथ मॉडर्न कन्वर्ज़न, स्क्वीज़नेट, Xception
आपको क्या सीखने को मिलेगा
- सॉफ़्टमैक्स लेयर और क्रॉस-एन्ट्रोपी लॉस की मदद से, अपना Keras इमेज क्लासिफ़ायर बनाने के लिए
- दूसरों को धोखा देना 🚫
सुझाव, राय या शिकायत
अगर आपको इस कोड लैब में कुछ गड़बड़ी दिखती है, तो कृपया हमें बताएं. GitHub की समस्याओं के ज़रिए, सुझाव या राय दी जा सकती है [ feedback link].
2. Google Colaboratory क्विक स्टार्ट
यह लैब, Google Collaboratory का इस्तेमाल करता है. इसके लिए, आपको कुछ सेट अप करने की ज़रूरत नहीं है. Colaboratory, शिक्षा के मकसद से बनाया गया एक ऑनलाइन नोटबुक प्लैटफ़ॉर्म है. यहां सीपीयू, जीपीयू, और टीपीयू के बारे में मुफ़्त में ट्रेनिंग दी जाती है.
Colaboratory के बारे में जानने के लिए, यह सैंपल नोटबुक खोलें और कुछ सेल चलाएं.
कोई TPU बैकएंड चुनें
Colab मेन्यू में, रनटाइम > रनटाइम का टाइप बदलें को चुनें. इसके बाद, TPU चुनें. इस कोड लैब में, आपको हार्डवेयर से तेज़ी से की जाने वाली ट्रेनिंग के लिए, सुरक्षित और मज़बूत TPU (टेंसर प्रोसेसिंग यूनिट) इस्तेमाल करना होगा. पहली बार एक्ज़ीक्यूशन करने पर, रनटाइम से कनेक्शन अपने-आप हो जाएगा. इसके अलावा, सबसे ऊपर दाएं कोने में मौजूद "कनेक्ट करें" बटन का इस्तेमाल भी किया जा सकता है.
नोटबुक चलाना
सेल पर क्लिक करके और Shift-ENTER का इस्तेमाल करके एक-एक करके सेल एक्ज़ीक्यूट करें. रनटाइम > सभी चलाएं में जाकर भी पूरी नोटबुक को चलाया जा सकता है.
विषय सूची
सभी नोटबुक में विषय सूची होती है. इसे खोलने के लिए, बाईं ओर मौजूद काले रंग के ऐरो का इस्तेमाल करें.
छिपे हुए सेल
कुछ सेल में सिर्फ़ उनका टाइटल दिखेगा. यह सुविधा, Colab की नोटबुक में ही उपलब्ध है. अंदर का कोड देखने के लिए उन पर दो बार क्लिक करें, लेकिन आम तौर पर यह बहुत दिलचस्प नहीं होता. आम तौर पर, ये विज़ुअलाइज़ेशन फ़ंक्शन के साथ काम करते हैं. अंदर के फ़ंक्शन को परिभाषित करने के लिए, आपको अब भी इन सेल को चलाना होगा.
पुष्टि करना
Colab, Google Cloud Storage की आपकी निजी बकेट को ऐक्सेस कर सकता है. इसके लिए, ज़रूरी है कि आपने अनुमति वाले किसी खाते की मदद से पुष्टि की हो. ऊपर दिया गया कोड स्निपेट, पुष्टि करने की प्रोसेस को ट्रिगर करेगा.
3. [जानकारी] न्यूरल नेटवर्क क्लासिफ़ायर के बारे में बुनियादी जानकारी
कम शब्दों में
अगर अगले पैराग्राफ़ में बोल्ड में लिखे गए सभी शब्द आपको पहले से ही पता हैं, तो अगले एक्सरसाइज़ पर जाएं. अगर आपने अभी डीप लर्निंग शुरू की है, तो आपका स्वागत है. कृपया आगे पढ़ें.
लेयर के क्रम में बनाए गए मॉडल के लिए, Keras Sequential API उपलब्ध कराता है. उदाहरण के लिए, तीन डेंस लेयर का इस्तेमाल करके इमेज को अलग-अलग कैटगरी में बांटने वाले मॉडल को Keras में इस तरह लिखा जा सकता है:
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=[192, 192, 3]),
tf.keras.layers.Dense(500, activation="relu"),
tf.keras.layers.Dense(50, activation="relu"),
tf.keras.layers.Dense(5, activation='softmax') # classifying into 5 classes
])
# this configures the training of the model. Keras calls it "compiling" the model.
model.compile(
optimizer='adam',
loss= 'categorical_crossentropy',
metrics=['accuracy']) # % of correct answers
# train the model
model.fit(dataset, ... )
डेंस न्यूरल नेटवर्क
यह इमेज को अलग-अलग कैटगरी में बांटने के लिए सबसे आसान न्यूरल नेटवर्क है. यह लेयर में व्यवस्थित "न्यूरॉन" से बना होता है. पहली लेयर, इनपुट डेटा को प्रोसेस करती है और अपने आउटपुट को अन्य लेयर में फ़ीड करती है. इसे "गहन" इसलिए कहा जाता है, क्योंकि हर एक न्यूरॉन, पिछली लेयर में मौजूद सभी न्यूरॉन से जुड़ा होता है.
किसी इमेज को ऐसे नेटवर्क में फ़ीड किया जा सकता है. इसके लिए, सभी पिक्सल की आरजीबी वैल्यू को एक लॉन्ग वेक्टर में फ़्लैट करके उसे इनपुट के तौर पर इस्तेमाल करें. यह इमेज पहचानने के लिए सबसे अच्छी तकनीक नहीं है, लेकिन हम इसे बाद में बेहतर बनाने की कोशिश करेंगे.
न्यूरोन, ऐक्टिवेशन, RELU
"न्यूरॉन", अपने सभी इनपुट का वेटेड योग कैलकुलेट करता है. इसके बाद, "बायस" नाम की वैल्यू जोड़ता है और नतीजे को "ऐक्टिवेशन फ़ंक्शन" के ज़रिए फ़ीड करता है. शुरुआत में वज़न और पक्ष के बारे में जानकारी नहीं है. न्यूरल नेटवर्क को कई तरह के डेटा के आधार पर ट्रेनिंग देकर, उन्हें किसी भी क्रम में शुरू किया जाएगा और "सीखना" होगा.
सबसे ज़्यादा लोकप्रिय ऐक्टिवेशन फ़ंक्शन को रेक्टिफ़ाइड लीनियर यूनिट के लिए RELU कहा जाता है. यह बहुत आसान फ़ंक्शन है, जैसा कि ऊपर दिए गए ग्राफ़ में देखा जा सकता है.
सॉफ़्टमैक्स ऐक्टिवेशन
ऊपर दिया गया नेटवर्क एक 5-न्यूरॉन लेयर पर खत्म होता है, क्योंकि हम फूलों को पांच कैटगरी (रोज़, ट्यूलिप, डैंडलायन, डेज़ी, सनफ़्लावर) में बांट रहे हैं. इंटरमीडिएट लेयर में मौजूद न्यूरॉन, क्लासिक RELU ऐक्टिवेशन फ़ंक्शन का इस्तेमाल करके चालू किए जाते हैं. हालांकि, आखिरी लेयर में, हम 0 से 1 के बीच की संख्याएं कैलकुलेट करना चाहते हैं. इनसे यह पता चलता है कि यह फूल गुलाब, ट्यूलिप वगैरह है या नहीं. इसके लिए, हम "सॉफ़्टमैक्स" नाम के ऐक्टिवेशन फ़ंक्शन का इस्तेमाल करेंगे.
किसी वेक्टर पर सॉफ़्टमैक्स को लागू करने के लिए, हर एलिमेंट का एक्सपोनेन्शियल निकालें और फिर वेक्टर को नॉर्मलाइज़ किया जाता है. ऐसा आम तौर पर, L1 नॉर्म (निरपेक्ष मानों का योग) का इस्तेमाल करके किया जाता है, ताकि मानों को 1 तक जोड़ा जा सके और उन्हें प्रायिकता के रूप में समझा जा सके.
क्रॉस-एन्ट्रापी लॉस
अब हमारा न्यूरल नेटवर्क, इनपुट इमेज से अनुमान लगाता है.इसलिए, हमें यह मेज़र करना होगा कि ये अनुमान कितने सही हैं. इसका मतलब है कि नेटवर्क के बताए गए अनुमान और सही जवाबों के बीच की दूरी, जिसे अक्सर "लेबल" कहा जाता है. याद रखें कि हमारे पास डेटासेट में मौजूद सभी इमेज के लिए सही लेबल हैं.
किसी भी दूरी से काम किया जा सकता है, लेकिन कैटगरी तय करने में आने वाली समस्याओं के लिए "क्रॉस-एंट्रॉपी डिस्टेंस" सबसे असरदार तरीका है. हम इसे अपनी गड़बड़ी या "लॉस" फ़ंक्शन कहेंगे:
ग्रेडिएंट डिसेंट
न्यूरल नेटवर्क को "ट्रेनिंग" देने का मतलब है, ट्रेनिंग इमेज और लेबल का इस्तेमाल करके वेट और बायस में बदलाव करना, ताकि क्रॉस-एन्ट्रोपी लॉस फ़ंक्शन को कम किया जा सके. यह सुविधा इस तरह काम करती है.
क्रॉस-एन्ट्रोपी, ट्रेनिंग इमेज और उसकी क्लास के पिक्सल, वेट, और बायस का फ़ंक्शन है.
अगर हम सभी वेट और सभी पूर्वाग्रहों के सापेक्ष क्रॉस-एंट्रॉपी के आंशिक डेरिवेटिव का हिसाब लगाते हैं, तो हमें दी गई इमेज, लेबल, और भार और पक्षपात के मौजूदा मान के लिए एक "ग्रेडिएंट" मिलता है. याद रखें कि हमारे पास लाखों वेट और बायस हो सकते हैं. इसलिए, ग्रेडिएंट का हिसाब लगाना काफ़ी मुश्किल है. अच्छी बात यह है कि Tensorflow हमारे लिए यह काम करता है. ग्रेडिएंट की गणितीय प्रॉपर्टी यह है कि यह "ऊपर" की ओर इंगित करता है. हमें क्रॉस-एन्ट्रापी कम करने के लिए, इसके उलट दिशा में जाना होगा. हम ग्रेडिएंट के एक अंश के अनुसार वज़न और पूर्वाग्रह अपडेट करते हैं. इसके बाद, हम ट्रेनिंग लूप में ट्रेनिंग इमेज और लेबल के अगले बैच का इस्तेमाल करके, यही काम बार-बार करते हैं. उम्मीद है कि यह उस जगह पर पहुंच जाएगा जहां क्रॉस-एन्ट्रापी कम से कम होगी. हालांकि, इस बात की कोई गारंटी नहीं है कि यह कम से कम वैल्यू यूनीक होगी.
मिनी बैचिंग और मोमेंटम
आप सिर्फ़ एक उदाहरण इमेज पर अपने ग्रेडिएंट का हिसाब लगा सकते हैं और महत्व और पक्षपात को तुरंत अपडेट कर सकते हैं, लेकिन उदाहरण के लिए, 128 इमेज के बैच पर ऐसा करने से ग्रेडिएंट मिलता है, जो अलग-अलग उदाहरण वाली इमेज के ज़रिए लागू किए गए कंस्ट्रेंट को बेहतर तरीके से दिखाता है और इससे समाधान ज़्यादा तेज़ी से जुड़ सकता है. मिनी-बैच के साइज़ में बदलाव किया जा सकता है.
इस तकनीक को कभी-कभी "स्टोकास्टिक ग्रेडिएंट डिसेंट" कहा जाता है. इसका एक और फ़ायदा है: बैच के साथ काम करने का मतलब है कि बड़े मैट्रिक्स के साथ काम करना. आम तौर पर, जीपीयू और टीपीयू पर इन मैट्रिक्स को ऑप्टिमाइज़ करना आसान होता है.
हालांकि, कन्वर्ज़न अब भी थोड़ा गड़बड़ा हो सकता है और अगर ग्रेडिएंट वेक्टर में सभी वैल्यू शून्य हैं, तो यह रुक भी सकता है. क्या इसका मतलब है कि हमें कम से कम वैल्यू मिल गई है? हमेशा नहीं. ग्रेडिएंट कॉम्पोनेंट, कम से कम या ज़्यादा से ज़्यादा वैल्यू पर शून्य हो सकता है. अगर लाखों एलिमेंट वाले ग्रेडिएंट वेक्टर में सभी एलिमेंट शून्य हैं, तो इस बात की संभावना बहुत कम है कि हर शून्य, कम से कम वैल्यू से जुड़ा हो और कोई भी शून्य, ज़्यादा से ज़्यादा वैल्यू से जुड़ा न हो. कई डाइमेंशन वाले स्पेस में, सैडल पॉइंट काफ़ी आम होते हैं और हम उन पर रुकना नहीं चाहते.
इलस्ट्रेशन: सैडल पॉइंट. ग्रेडिएंट 0 है लेकिन यह सभी दिशाओं में कम से कम नहीं है. (इमेज एट्रिब्यूशन Wikimedia: by Nicoguro - खुद का काम, CC BY 3.0)
इसका समाधान यह है कि ऑप्टिमाइज़ेशन एल्गोरिदम में कुछ मोमेंटम जोड़ा जाए, ताकि वह बिना रुके सैडल पॉइंट को पार कर सके.
शब्दावली
बैच या मिनी-बैच: ट्रेनिंग, हमेशा ट्रेनिंग डेटा और लेबल के बैच पर की जाती है. ऐसा करने से, एल्गोरिदम को बेहतर बनाने में मदद मिलती है. आम तौर पर, "बैच" डाइमेंशन, डेटा टेंसर का पहला डाइमेंशन होता है. उदाहरण के लिए, [100, 192, 192, 3] शेप वाले टेंसर में, 192x192 पिक्सल की 100 इमेज होती हैं. हर पिक्सल में तीन वैल्यू (आरजीबी) होती हैं.
क्रॉस-एन्ट्रोपी लॉस: यह एक खास लॉस फ़ंक्शन है, जिसका इस्तेमाल अक्सर क्लासिफ़ायर में किया जाता है.
गहन लेयर: न्यूरॉन की एक लेयर, जहां हर न्यूरॉन, पिछली लेयर में मौजूद सभी न्यूरॉन से जुड़ा होता है.
features: न्यूरल नेटवर्क के इनपुट को कभी-कभी "सुविधाएं" कहा जाता है. किसी डेटासेट के किन हिस्सों (या हिस्सों के कॉम्बिनेशन) को किसी न्यूरल नेटवर्क में डालकर, अच्छे अनुमान पाने की कला को "फ़ीचर इंजीनियरिंग" कहा जाता है.
लेबल: सुपरवाइज़्ड क्लासिफ़िकेशन की समस्या में, "क्लास" या सही जवाबों का दूसरा नाम
लर्निंग रेट: ग्रेडिएंट का वह हिस्सा जिससे ट्रेनिंग लूप के हर दोहराव पर वेट और बायस अपडेट होते हैं.
logits: ऐक्टिवेशन फ़ंक्शन लागू होने से पहले, न्यूरॉन की एक लेयर के आउटपुट को "लॉगिट" कहा जाता है. यह शब्द, "लॉजिस्टिक फ़ंक्शन" से लिया गया है. इसे "सिगमोइड फ़ंक्शन" भी कहा जाता है. यह सबसे लोकप्रिय ऐक्टिवेशन फ़ंक्शन था. "लॉजिस्टिक फ़ंक्शन से पहले न्यूरॉन आउटपुट" को छोटा करके "लॉगिट" कर दिया गया.
loss: गड़बड़ी का फ़ंक्शन, जो सही जवाबों के साथ न्यूरल नेटवर्क के आउटपुट की तुलना करता है
न्यूरॉन: यह अपने इनपुट के भारित योग का आकलन करता है, पूर्वाग्रह जोड़ता है और ऐक्टिवेशन फ़ंक्शन के ज़रिए नतीजे को फ़ीड करता है.
वन-हॉट एन्कोडिंग: 5 में से 3 क्लास को 5 एलिमेंट के वेक्टर के तौर पर एन्कोड किया जाता है. इसमें तीसरे एलिमेंट को छोड़कर, बाकी सभी शून्य होते हैं, यानी कि 1.
relu: रिक्टिफ़ाइड लीनियर यूनिट. न्यूरॉन के लिए एक लोकप्रिय ऐक्टिवेशन फ़ंक्शन.
सिगमॉइड: यह एक और ऐक्टिवेशन फ़ंक्शन है, जो पहले काफ़ी लोकप्रिय था और अब भी खास मामलों में काम आता है.
सॉफ़्टमैक्स: यह एक खास ऐक्टिवेशन फ़ंक्शन है, जो वेक्टर पर काम करता है. यह सबसे बड़े कॉम्पोनेंट और बाकी सभी के बीच के अंतर को बढ़ाता है. साथ ही, वेक्टर को 1 का योग करने के लिए नॉर्मलाइज़ करता है, ताकि इसे प्रॉबबिलिटी के वेक्टर के रूप में समझा जा सके. इसका इस्तेमाल क्लासिफ़ायर में आखिरी चरण के तौर पर किया जाता है.
टेंसर: "टेंसर", मैट्रिक्स की तरह होता है, लेकिन इसमें डाइमेंशन की संख्या आर्बिट्रेरी होती है. एक डाइमेंशन वाला टेंसर, एक वेक्टर होता है. 2-डाइमेंशन टेंसर एक मैट्रिक्स होता है. इसके बाद, आपके पास 3, 4, 5 या उससे ज़्यादा डाइमेंशन वाले टेंसर हो सकते हैं.
4. ट्रांसफ़र लर्निंग
इमेज को अलग-अलग कैटगरी में बांटने की समस्या के लिए, शायद डेंस लेयर काफ़ी न हों. हमें कॉन्वोलूशनल लेयर और उन्हें व्यवस्थित करने के तरीकों के बारे में जानना होगा.
हालांकि, हम शॉर्टकट भी ले सकते हैं! डाउनलोड करने के लिए पूरी तरह से ट्रेन किए गए कॉन्वोलूशनल न्यूरल नेटवर्क उपलब्ध हैं. इसकी आखिरी लेयर यानी सॉफ़्टमैक्स क्लासिफ़िकेशन हेड को काटकर, उसकी जगह अपनी खुद की लेयर लगाई जा सकती है. ट्रेन किए गए सभी वेट और बायस पहले जैसे ही रहते हैं. सिर्फ़ जोड़ी गई सॉफ़्टमैक्स लेयर को फिर से ट्रेन किया जाता है. इस तकनीक को ट्रांसफ़र लर्निंग कहा जाता है. यह तब तक काम करती है, जब तक कि जिस डेटासेट पर न्यूरल नेट को पहले से ट्रेन किया गया है वह आपके डेटासेट से "काफ़ी मिलता-जुलता" हो.
हाथों से सीखना
कृपया नीचे दी गई नोटबुक खोलें, सेल को लागू करें (Shift-ENTER), और जहां भी आपको "कार्रवाई ज़रूरी है" लेबल दिखे वहां दिए गए निर्देशों का पालन करें.
Keras Flowers transfer learning (playground).ipynb
ज़्यादा जानकारी
ट्रांसफ़र लर्निंग की मदद से, आपको टॉप रिसर्चर के बनाए गए बेहतर कन्वोल्यूशनल न्यूरल नेटवर्क आर्किटेक्चर और इमेज के बड़े डेटासेट पर प्री-ट्रेनिंग, दोनों का फ़ायदा मिलता है. हमारे मामले में, हम ImageNet पर एक प्रशिक्षित नेटवर्क से लर्निंग को ट्रांसफ़र करेंगे. यह इमेज का एक डेटाबेस है, जिसमें कई पौधे और बाहर की तस्वीरें हैं. यह डेटाबेस, फूलों के काफ़ी करीब है.
इलस्ट्रेशन: ब्लैक बॉक्स के तौर पर ट्रेन किए गए जटिल कॉन्वलूशन न्यूरल नेटवर्क का इस्तेमाल करके, सिर्फ़ क्लासिफ़िकेशन हेड को फिर से ट्रेनिंग दें. इसे ट्रांसफ़र लर्निंग कहते हैं. हम बाद में देखेंगे कि कॉन्वोल्यूशनल लेयर की ये जटिल व्यवस्थाएं कैसे काम करती हैं. फ़िलहाल, यह किसी और की समस्या है.
Keras में ट्रांसफ़र लर्निंग
Keras में, tf.keras.applications.*
कलेक्शन से पहले से ट्रेन किए गए मॉडल को इंस्टैंशिएट किया जा सकता है. उदाहरण के लिए MobileNet V2 एक बहुत अच्छा कॉन्वलूशनल आर्किटेक्चर है जो साइज़ को लेकर सही रहता है. include_top=False
चुनने पर, आपको पहले से ट्रेन किया गया मॉडल मिलता है. इसमें फ़ाइनल सॉफ़्टमैक्स लेयर नहीं होती, ताकि आप अपनी लेयर जोड़ सकें:
pretrained_model = tf.keras.applications.MobileNetV2(input_shape=[*IMAGE_SIZE, 3], include_top=False)
pretrained_model.trainable = False
model = tf.keras.Sequential([
pretrained_model,
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(5, activation='softmax')
])
pretrained_model.trainable = False
सेटिंग पर भी ध्यान दें. यह पहले से ट्रेन किए गए मॉडल के वेट और पक्षपात को फ़्रीज़ करता है, ताकि आप सिर्फ़ सॉफ़्टमैक्स लेयर को ट्रेनिंग दे सकें. आम तौर पर, इस प्रक्रिया में काफ़ी कम वज़न शामिल किए जाते हैं. इसे तेज़ी से और बड़े डेटासेट की ज़रूरत के बिना पूरा किया जा सकता है. हालांकि, अगर आपके पास ज़्यादा डेटा है, तो ट्रांसफ़र लर्निंग pretrained_model.trainable = True
के साथ बेहतर तरीके से काम कर सकती है. इसके बाद, पहले से ट्रेन किए गए वेट से बेहतर शुरुआती वैल्यू मिलती हैं. साथ ही, ट्रेनिंग की मदद से इन वैल्यू में बदलाव करके, उन्हें आपकी समस्या के हिसाब से बनाया जा सकता है.
आखिर में, देखें कि Flatten()
लेयर को सघन सॉफ़्टमैक्स लेयर से पहले डाला गया है. डेंस लेयर, डेटा के फ़्लैट वैक्टर पर काम करती हैं. हालांकि, हमें नहीं पता कि पहले से ट्रेन किया गया मॉडल क्या दिखाता है. इसलिए, हमें इसे छोटा करना होगा. अगले चैप्टर में, हम कॉन्वोल्यूशनल आर्किटेक्चर के बारे में जानेंगे. साथ ही, कॉन्वोल्यूशनल लेयर से मिलने वाले डेटा फ़ॉर्मैट के बारे में भी बताएंगे.
इस तरीके से आपको करीब 75% सटीक जानकारी मिलती है.
समाधान
यहां समाधान वाली नोटबुक दी गई है. कोई समस्या आने पर, इसका इस्तेमाल किया जा सकता है.
Keras Flowers transfer learning (solution).ipynb
हमने क्या-क्या शामिल किया है
- 🤔 Keras में क्लासिफ़ायर लिखने का तरीका
- 🤓 सॉफ़्टमैक्स आखिरी लेयर के साथ कॉन्फ़िगर किया गया और क्रॉस-एंट्रॉपी लॉस
- ❌ लर्निंग ट्रांसफ़र करें
- 🤔 अपना पहला मॉडल ट्रेन करना
- 🧐 ट्रेनिंग के दौरान, हार-जीत और सटीक नतीजे का पता लगाना
कृपया कुछ समय निकालकर इस चेकलिस्ट को देखें.
5. बधाई हो!
अब आपके पास Keras मॉडल बनाने का विकल्प है. कॉन्वलूशनल लेयर को असेंबल करने का तरीका जानने के लिए, कृपया अगली लैब पर जाएं.
- TPU-स्पीड डेटा पाइपलाइन: tf.data.Dataset और TFRecords
- [THIS LAB] ट्रांसफ़र लर्निंग के साथ आपका पहला Keras मॉडल
- केरास और टीपीयू के साथ कन्वलूशनल न्यूरल नेटवर्क
- Keras और TPU के साथ आधुनिक कॉन्वेंट, squeezenet, Xception
TPU का इस्तेमाल
Cloud AI Platform पर, टीपीयू और जीपीयू उपलब्ध हैं:
- डीप लर्निंग वीएम पर
- AI Platform Notebooks में
- AI Platform Training से जुड़ी नौकरियों में
आखिर में, हमें सुझाव, राय या शिकायत ज़रूर भेजें. अगर आपको इस लैब में कोई गड़बड़ी दिखती है या आपको लगता है कि इसमें सुधार किया जाना चाहिए, तो कृपया हमें बताएं. GitHub की समस्याओं [ सुझाव/राय देने या शिकायत करने के लिए लिंक] के ज़रिए सुझाव, शिकायत या राय दी जा सकती है.
|