如题:只需要给定输出特征图的大小就好,其中通道数前后不发生变化。具体如下:
AdaptiveAvgPool2d
CLASStorch.nn.AdaptiveAvgPool2d(output_size)[SOURCE]
Applies a 2D adaptive average pooling over an input signal composed of several input planes.
The output is of size H x W, for any input size. The number of output features is equal to the number of input planes.
Parameters
output_size – the target output size of the image of the form H x W. Can be a tuple (H, W) or a single H for a square image H x H. H and W can be either a int, or None which means the size will be the same as that of the input.
Examples
1
2
3
4
5
6
7
8
9
10
11
12
|
>>> # 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 ) |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
>>> 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 >>> |
以上这篇pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/caicaiatnbu/article/details/88955272