वैलिड पैडिंग: यह जीरो पैडिंग के साथ है। आशा है कि कोई भ्रम नहीं है।
x = tf.constant([[1., 2., 3.], [4., 5., 6.],[ 7., 8., 9.], [ 7., 8., 9.]])
x = tf.reshape(x, [1, 4, 3, 1])
valid_pad = tf.nn.max_pool(x, [1, 2, 2, 1], [1, 2, 2, 1], padding='VALID')
print (valid_pad.get_shape()) # output-->(1, 2, 1, 1)
एक ही पैडिंग: यह पहली जगह में समझने के लिए एक तरह से मुश्किल है क्योंकि हमें आधिकारिक डॉक्स में उल्लिखित दो शर्तों पर अलग से विचार करना होगा ।
चलो इनपुट के रूप में , आउटपुट के रूप में , के रूप में गद्दी , के रूप में और कर्नेल आकार के रूप में (केवल एक ही आयाम माना जाता है)
केस 01 ::
केस 02 ::
की गणना इस प्रकार की जाती है कि न्यूनतम मान जो पैडिंग के लिए लिया जा सकता है। चूंकि मूल्य ज्ञात है, इस सूत्र का उपयोग करके मूल्य पाया जा सकता है ।
आइए इस उदाहरण पर काम करते हैं:
x = tf.constant([[1., 2., 3.], [4., 5., 6.],[ 7., 8., 9.], [ 7., 8., 9.]])
x = tf.reshape(x, [1, 4, 3, 1])
same_pad = tf.nn.max_pool(x, [1, 2, 2, 1], [1, 2, 2, 1], padding='SAME')
print (same_pad.get_shape()) # --> output (1, 2, 2, 1)
यहाँ x का आयाम (3,4) है। फिर यदि क्षैतिज दिशा ली जाती है (3):
यदि लंबवत दिशा ली गई है (4):
आशा है कि यह समझने में मदद करेगा कि वास्तव में TF में SAME पैडिंग कैसे काम करता है।