はじめに
np.pad関数の"reflect"がわからなかったので具体例を入れて備忘録がてら残しておきます
"reflect"具体例
文字列 "A","B","C"の時
str_list = ["A","B","C"]
pad_str_list = np.pad(str_list, 3, 'reflect')
print(pad_str_list)
['B', 'C', 'B', 'A', 'B', 'C', 'B', 'A', 'B']
ここでpad_str_list[3:6]
が元のstr_list
の要素です.
左右に3個ずつpaddingしています.
左側の3つpad_str_list[:3]
をみてみるとpad_str_list[3]="A"
を対称に文字列が並んでます.
右側の3つpad_str_list[6:]
をみてみるとpad_str_list[5]="C"
を対称に文字列が並んでいます.
なので"reflect"のパディング方法は入力したリストの先頭と最後の要素を軸として対称になるようになっています(1).
最後に
np.padはpaddingだけを理解するなら早いんですが,どうゆう方法でパディングするってなった時に意外と詰まるので,自分でも困ってます.後,意外とこの辺りは畳み込みやプーリングの際も考える必要出てきそうなので知れてよかったです.
参考文献
(1):numpy.pad