Pytorch nn.AdaptiveAvgPool2d

Pytorch nn.AdaptiveAvgPool2d

  • nn.AdaptiveAvgPool2d(output_size)
    • H*W的输出
    • H*H的输出

nn.AdaptiveAvgPool2d(output_size)

class torch.nn.AdaptiveAvgPool2d(output_size)

对输入信号,提供2维的自适应平均池化操作。
输入的大小任意。但是输入和输出特征的数目不会变化(自理解为通道数不改变。
【参数】
output_size: 输出信号的尺寸。
可以用(H,W)表示HW的输出,也可以使用单个数字H表示HH大小的输出。

H*W的输出

>>> import torch.nn as nn
>>> import torch.autograd as autograd
>>> m = nn.AdaptiveAvgPool2d((5,7))
>>> input = autograd.Variable(torch.randn(1,64,8,9))
>>> output = m(input)
>>> print(output.shape)
torch.Size([1, 64, 5, 7])

H*H的输出

>>> import torch.nn as nn
>>> import torch.autograd as aotugrad
>>> m = nn.AdaptiveAvgPool2d(1)
>>> input = autograd.Variable(torch.randn(1, 64, 8, 9))
>>> output = m(input)
>>> print(output.shape)
torch.Size([1, 64, 1, 1])

观察以上的两个例子,经过nn.AdaptiveAvgPool2d的操作之后,发生变化的只有后两维,也就是只有长和宽发生了变化,而batch_size和通道数不会发生变化。

你可能感兴趣的:(Pytorch,python,深度学习)