【pytorch】max_pool2dしてmax_unpool2dする意味ってなんだろう?
背景
encoderとdecoderのネットワークでmax_poolしてからmax_unpoolしてるのを見て、これは一体なんの意味があるのか気になったので実験してみた
実験
test code
x_4, indices_4 = F.max_pool2d(x_42, kernel_size=2, stride=2, return_indices=True)
x_4d = F.max_unpool2d(x_4, indices_4, kernel_size=2, stride=2, output_size=dim_4)
print("x_4d.shape=",x_4d.shape)
print("x_42.shape=",x_42.shape)
save_image(x_4d[0,0,:,:],"x_4d.png")
save_image(x_42[0,0,:,:],"x_42.png")
output
x_4d.shape= (8, 512, 14, 14)
x_42.shape= (8, 512, 14, 14)
結果
結論
max poolしてmax unpoolすると、windowの中の最大値以外が0になる。
機能的には強い特徴が強調されるという事だろうか。
参考文献
Author And Source
この問題について(【pytorch】max_pool2dしてmax_unpool2dする意味ってなんだろう?), 我々は、より多くの情報をここで見つけました https://qiita.com/minh33/items/45b68ba9e1dda91db76c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .