पूलिंग और कनफ़ेक्शनल ऑप्स इनपुट टेंसर के पार एक "विंडो" स्लाइड करते हैं। tf.nn.conv2d
एक उदाहरण के रूप में उपयोग करना : यदि इनपुट टेंसर के 4 आयाम हैं: [batch, height, width, channels]
तो, कन्वेंशन height, width
आयामों पर 2 डी विंडो पर संचालित होता है ।
strides
निर्धारित करता है कि प्रत्येक आयाम में खिड़की कितनी शिफ्ट होती है। विशिष्ट उपयोग पहले (बैच) और अंतिम (गहराई) 1 के समीप सेट करता है।
आइए एक बहुत ही ठोस उदाहरण का उपयोग करें: 32x32 ग्रेस्केल इनपुट छवि पर 2-डी कनवल्शन चलाना। मैं कहता हूं कि greyscale क्योंकि तब इनपुट छवि में गहराई = 1 होती है, जो इसे सरल रखने में मदद करती है। उस छवि को इस तरह देखें:
00 01 02 03 04 ...
10 11 12 13 14 ...
20 21 22 23 24 ...
30 31 32 33 34 ...
...
एक एकल उदाहरण (बैच आकार = 1) पर 2x2 कनवेंशन विंडो चलाते हैं। हम कनवल्शन को 8 के आउटपुट चैनल की गहराई देंगे।
सजा के लिए इनपुट है shape=[1, 32, 32, 1]
।
यदि आप निर्दिष्ट strides=[1,1,1,1]
करते हैं padding=SAME
, तो फ़िल्टर का आउटपुट [1, 32, 32, 8] होगा।
फ़िल्टर पहले इसके लिए एक आउटपुट बनाएगा:
F(00 01
10 11)
और फिर इसके लिए:
F(01 02
11 12)
और इसी तरह। फिर यह गणना करते हुए दूसरी पंक्ति में चला जाएगा:
F(10, 11
20, 21)
फिर
F(11, 12
21, 22)
यदि आप [1, 2, 2, 1] की स्ट्राइड निर्दिष्ट करते हैं, तो यह ओवरलैपिंग विंडोज़ नहीं करेगा। यह गणना करेगा:
F(00, 01
10, 11)
और फिर
F(02, 03
12, 13)
स्ट्राइड पूलिंग ऑपरेटरों के लिए समान रूप से संचालित होता है।
प्रश्न 2: क्यों [1, एक्स, वाई, 1] काफिलों के लिए
पहला 1 बैच है: आप आमतौर पर अपने बैच में उदाहरणों को छोड़ना नहीं चाहते हैं, या आपको उन्हें पहली जगह में शामिल नहीं करना चाहिए। :)
अंतिम 1 दीक्षांत की गहराई है: आप आमतौर पर इसी कारण से इनपुट को छोड़ना नहीं चाहते हैं।
Conv2d ऑपरेटर अधिक सामान्य है, इसलिए आप ऐसे कॉन्फोल्यूशन बना सकते हैं जो विंडो को अन्य आयामों के साथ स्लाइड करते हैं, लेकिन यह कंफर्टसेट में एक विशिष्ट उपयोग नहीं है। विशिष्ट उपयोग उन्हें स्थानिक रूप से उपयोग करना है।
क्यों -1 -1 में फेरबदल एक प्लेसहोल्डर है जो कहता है कि "पूर्ण टेंसर के लिए आवश्यक आकार से मेल खाने के लिए आवश्यक रूप से समायोजित करें।" यह कोड को इनपुट बैच आकार से स्वतंत्र बनाने का एक तरीका है, ताकि आप अपनी पाइपलाइन को बदल सकें और कोड में बैच आकार को हर जगह समायोजित न करना पड़े।