การเติมช่องว่างที่ถูกต้อง: นี่คือการเติมเต็มศูนย์ หวังว่าจะไม่มีความสับสน
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)
SAME padding: นี้เป็นชนิดของเรื่องยุ่งยากที่จะเข้าใจในสถานที่แรกเพราะเราต้องพิจารณาเงื่อนไขสองแยกเป็นที่กล่าวถึงในเอกสารอย่างเป็นทางการ
ลองรับอินพุตเป็น
เอาต์พุตเป็น
padding as
, stride as
และขนาดเคอร์เนลเป็น
(พิจารณาเพียงมิติเดียวเท่านั้น)
กรณีที่ 01:
::)
กรณี 02
::),&space;0))
มีการคำนวณเช่นนั้นค่าต่ำสุดที่สามารถนำไปใช้สำหรับการขยาย เนื่องจาก
ทราบค่าของค่า
จึงสามารถพบได้โดยใช้สูตรนี้
นี้
ลองทำตัวอย่างนี้
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):
&space;=&space;1,&space;n_0&space;=&space;int&space;(%5Cfrac%7B3-2+2*1%7D%7B2%7D&space;+&space;1)&space;=&space;2)
หากถ่ายในทิศทางแนวตั้ง (4):
&space;=&space;2)
หวังว่าสิ่งนี้จะช่วยให้เข้าใจได้จริง เดียวกัน padding ทำงานใน TF