最近在看一個torch的項目,用到了nn.ReflectionPad1d這個函數,隨便一搜都是ReflectionPad2d的。於是喵了一眼官網,寫的是真的清楚哇。
比較懶,直接截個圖,簡單說一下。所謂Reflection就像照鏡子一樣。
我再用【9,8,7,6】再來說說。這個函數裏面的值可以是一個int,也可以是(int,int)這樣的list或tuple。
如果是一個int就左右pad相同維度,如果是tuple就(左,右)。
比如 nn.ReflectionPad1d((3, 0)),就是6,7,8,9,8,7,6,這個6,7,8就是pad出來的。
值得注意的一點是nn.ReflectionPad1d裏面的值不能超過(維度-1)。
比如如果是【9,8,7,6】,然後nn.ReflectionPad1d(4)
就會爆如下錯誤
RuntimeError: Argument #4: Padding size should be less than the corresponding input dimension, but got: padding (8, 8) at dimension 2 of input [1, 2, 4]
Over