Pytorch torch.nn.AdaptiveAvgPool2d()適応平均プーリング関数の解析



Pytorch Torch Nn Adaptiveavgpool2d Adaptive Average Pooling Function Parsing



例:出力フィーチャマップのサイズを指定するだけで、チャネル数は前後で変化しません。詳細は次のとおりです。

AdaptiveAvgPool2d

クラス torch.nn.AdaptiveAvgPool2doutput_size )。 [ソース]



複数の入力平面で構成される入力信号に2D適応平均プーリングを適用します。

出力は、任意の入力サイズに対して、サイズH xWです。出力フィーチャの数は、入力プレーンの数と同じです。



パラメーター

output_size – H x W形式の画像のターゲット出力サイズ。タプル(H、W)または正方形画像H x Hの単一のHにすることができます。HおよびWは、intまたはNoneつまり、サイズは入力のサイズと同じになります。



>>> # target output size of 5x7 >>> m = nn.AdaptiveAvgPool2d((5,7)) >>> input = torch.randn(1, 64, 8, 9) >>> output = m(input) >>> # target output size of 7x7 (square) >>> m = nn.AdaptiveAvgPool2d(7) >>> input = torch.randn(1, 64, 10, 9) >>> output = m(input) >>> # target output size of 10x7 >>> m = nn.AdaptiveMaxPool2d((None, 7)) >>> input = torch.randn(1, 64, 10, 9) >>> output = m(input) >>> input = torch.randn(1, 3, 3, 3) >>> input tensor([[[[ 0.6574, 1.5219, -1.3590], [-0.1561, 2.7337, -1.8701], [-0.8572, 1.0238, -1.9784]], [[ 0.4284, 1.4862, 0.3352], [-0.7796, -0.8020, -0.1243], [-1.2461, -1.7069, 0.1517]], [[ 1.4593, -0.1287, 0.5369], [ 0.6562, 0.0616, 0.2611], [-1.0301, 0.4097, -1.9269]]]]) >>> m = nn.AdaptiveAvgPool2d((2, 2)) >>> output = m(input) >>> output tensor([[[[ 1.1892, 0.2566], [ 0.6860, -0.0227]], [[ 0.0833, 0.2238], [-1.1337, -0.6204]], [[ 0.5121, 0.1827], [ 0.0243, -0.2986]]]]) >>> 0.6574+1.5219+2.7337-0.1561 4.7569 >>> 4.7569/4 1.189225 >>>