【torch.nn.AdaptiveMaxPool】

Pytorch提供了自适应池化层torch.nn.AdaptiveMaxPool,这种层和一般的池化层一样,都没有参数,都是对特征进行降采样,自适应的意思是在使用池化层时不需要指定核的大小步长等参数,只需要告诉池化层我们所需要的输出大小即可,池化层会自动计算核的大小以及步长,因此称为自适应。

举个栗子

使用torch.nn.AdaptiveMaxPool1d举例,首先创建一个一维张量

import torch.nn as nn
import torch

x = torch.rand(size=(1, 1, 5)) # 池化层在最后一个维度进行池化
print(x)
>>> tensor([[[0.6633, 0.0397, 0.5412, 0.0132, 0.7847]]])

输出大小为1(保留1个数据)

out = nn.AdaptiveMaxPool1d(output_size=1)(x) # 最后一个维度输出大小为1
print(out)
>>> tensor([[[0.7847]]])

输出大小为2(保留2个数据)

out = nn.AdaptiveMaxPool1d(output_size=2)(x) # 最后一个维度输出大小为2
print(out)
>>> tensor([[[0.6633, 0.7847]]])

输出大小为3(保留3个数据)

out = nn.AdaptiveMaxPool1d(output_size=3)(x) # 最后一个维度输出大小为3
print(out)
>>> tensor([[[0.6633, 0.5412, 0.7847]]])

猜你喜欢

转载自blog.csdn.net/weixin_43486780/article/details/113606135