PyTorch----torch.nn.AdaptiveAvgPool2d()自适应平均池化函数

        AdaptiveAvgPool2d是PyTorch中的一个模块,用于卷积神经网络(CNNs)中的自适应平均池化。它通常用于需要将输入张量的大小调整为固定大小,而不考虑其原始尺寸。

        “自适应”方面是指输出大小是由用户指定的,而不是固定的。这为模型设计提供了更大的灵活性,因为池化操作可以适应不同的输入大小。

以下是AdaptiveAvgPool2d的工作原理:

输入:取一个形状为(N, C, H, W)的输入张量,其中N为批大小,C为通道数,H和W分别为输入特征映射的高度和宽度。

输出大小:与输出大小由内核大小和步数决定的传统池层不同,在AdaptiveAvgPool2d中,您可以直接指定所需的输出大小。可以将其指定为单个整数output_size(结果为正方形输出)或元组(output_height, output_width)。

操作:对于每个通道,AdaptiveAvgPool2d根据输出大小将输入划分为分段网格,然后计算每个分段的平均值。这个平均值成为相应的输出像素。

输出:输出张量具有形状(N, C, output_height, output_width)。

示例: 

import torch
import torch.nn as nn

# Input tensor with shape (N, C, H, W)
input_tensor = torch.randn(1, 3, 32, 32)

# Define AdaptiveAvgPool2d layer with output size (output_height, output_width)
adaptive_avg_pool = nn.AdaptiveAvgPool2d((5, 5))

# Apply AdaptiveAvgPool2d
output = adaptive_avg_pool(input_tensor)

print(output.shape)  # Output shape: (1, 3, 5, 5)

 在这个例子中,AdaptiveAvgPool2d用于将输入张量的大小调整为(5,5)的固定大小,而不考虑其原始维度。这在构建输入大小变化的模型或在卷积层和完全连接层之间转换时特别有用。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 06:30:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 06:30:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 06:30:01       87 阅读
  4. Python语言-面向对象

    2024-03-27 06:30:01       96 阅读

热门阅读

  1. 模拟实现字符串函数1(详细版本)

    2024-03-27 06:30:01       31 阅读
  2. VUE3——reactive对比ref

    2024-03-27 06:30:01       43 阅读
  3. 通过 Docker 实现国产数据库 OpenGauss 开发环境搭建

    2024-03-27 06:30:01       39 阅读
  4. 最大子段和和最大子矩阵|动态规划

    2024-03-27 06:30:01       37 阅读
  5. 关于Redission读写锁

    2024-03-27 06:30:01       37 阅读
  6. 为什么不是Github Copilot,不是 Devin 而是 AutoCoder

    2024-03-27 06:30:01       40 阅读