अपना खुद का pooling ऑपरेशन लिखें
जैसा कि आपने पहले देखा है, CNNs में पैरामीटर्स की संख्या बहुत अधिक हो सकती है। न्यूरल नेटवर्क की convolutional लेयर्स के बीच अक्सर pooling लेयर्स जोड़ी जाती हैं ताकि उनके आउटपुट को संक्षेप में समेटा जा सके, और नेटवर्क की अगली लेयर में पैरामीटर्स की संख्या कम की जा सके। यह तब मदद करता है जब आप नेटवर्क को तेज़ी से ट्रेन करना चाहते हैं, या जब बहुत बड़े संख्या में पैरामीटर्स सीखने के लिए पर्याप्त डेटा नहीं होता।
एक pooling लेयर को एक विशेष प्रकार की convolution के रूप में समझा जा सकता है। इनपुट की हर विंडो के लिए यह अधिकतम पिक्सेल वैल्यू ढूँढती है और केवल उसी पिक्सेल को आगे पास करती है। इस अभ्यास में, आप अपना खुद का max pooling ऑपरेशन लिखेंगे, उस कोड के आधार पर जिसका उपयोग आपने पहले दो-आयामी convolution ऑपरेशन लिखने के लिए किया था।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Keras के साथ Image Modeling
अभ्यास निर्देश
- इनपुट ऐरे (
im) में इंडेक्स करके सही विंडो चुनें। - इस विंडो में अधिकतम वैल्यू ढूँढें।
- इसे आउटपुट ऐरे (
result) के सही एंट्री में असाइन करें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Result placeholder
result = np.zeros((im.shape[0]//2, im.shape[1]//2))
# Pooling operation
for ii in range(result.shape[0]):
for jj in range(result.shape[1]):
result[ii, jj] = np.max(____)