Pooling Layer

Yelim Kim·2023년 7월 18일
0

Machine_Learning

목록 보기
43/44


2x2 filter와 stride=2인 상태 → 원소별 곱하고 총 합 X → window에 들어있는 값들의 최댓값/평균

  • 일반적으로 F=2,  S=2F = 2,\; S=2(non-overlapping window), P=0P = 0
    • 계산의 편의를 위해 HH는 2의 배수라고 가정

      HF+2PS+1=H2+02+1=H/21+1=H/2\bigg\lfloor \frac{H - F + 2P}{S} + 1 \bigg\rfloor = \bigg\lfloor \frac{H - 2 + 0}{2} + 1 \bigg\rfloor = H/2 - 1 + 1 = H/2
    • pooling은 일반적으로 height, width를 절반으로 줄임

구현

import torch
import torch.nn as nn

torch.set_printoptions(linewidth=100)

max_pool = nn.MaxPool2d(kernel_size=2, stride=2)
avg_pool = nn.AvgPool2d(kernel_size=2, stride=2)

input_ = torch.randn(1, 8, 8)
print(f"input: {input_.shape}\n{input_}\n")

output = max_pool(input_)
print(f"max pooling output: {output.shape}\n{output}\n")

output = avg_pool(input_)
print(f"avg pooling output: {output.shape}\n{output}")
profile
뜬금없지만 세계여행이 꿈입니다.

0개의 댓글