VALID dolgu: bu sıfır dolgu ile. Umarım karışıklık olmaz.
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)
AYNI dolgu: Bu, ilk etapta anlaşılması biraz zordur çünkü resmi dokümanlarda belirtildiği gibi iki koşulu ayrı ayrı ele almamız gerekir .
Girdi olarak çıktı olarak , dolgu olarak , adım olarak ve çekirdek boyutunu olarak alalım (sadece tek bir boyut dikkate alınır)
Durum 01 ::
Durum 02 ::
dolgu için alınabilecek minimum değer hesaplanır. Değeri bilindiğinden, değeri bu formül kullanılarak bulunabilir .
Bu örneği inceleyelim:
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)
Burada x'in boyutu (3,4) 'tür. Sonra yatay yön alınırsa (3):
Dikey yön alınırsa (4):
Umarım bu TFO'nun aslında SAD dolgusunun nasıl çalıştığını anlamaya yardımcı olacaktır .