如题:只需要给定输出特征图的大小就好,其中通道数前后不发生变化。具体如下:
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