본문 바로가기
모두의 딥러닝/강의자료 정리

Lab-10-1: Convolution

by cvlab_김준수 2025. 2. 13.

Convolution의 크기

 

 

 

[위의 식이 맞는지 확인하는 코드]

 

import torch
import torch.nn as nn

# [CNN 만들기]
conv = nn.Conv2d(1, 1, 11, stride=4, padding=0) # 입력 채널1 / 출력 채널 1 / stride 4 / padding 0
conv # Conv2d(1, 1, kernel_size=(11, 11), stride=(4, 4))


# [입력 만들기]
inputs = torch.Tensor(1, 1, 227, 227) # 배치 크기 1 / 채널 1 / 높이 227 / 너비 227
inputs.shape # torch.Size([1, 1, 227, 227])


# [CNN에 입력 넣기]
out = conv(inputs)
out.shape # torch.Size([1, 1, 55, 55])

 

 

 

 

Perceptron과 Convolution

 

필터의 각 값과 입력 이미지 픽셀의 각 값을 곱한 것의 합을 퍼셉트론의 출력으로 본다.

 

 

 

pooling layer

 

import torch
import torch.nn as nn

# [CNN 만들기]
conv = nn.Conv2d(1, 5, 5) # 입력 채널 1 / 출력채널 5 / 커널 크기 5x5

# [입력 만들기]
inputs = torch.Tensor(1, 1, 28, 28) # 배치 크기 1 / 채널 1 / 높이 28 / 너비 28

# [CNN에 입력 넣기]
out = conv(inputs)

# [pooling 레이어 만들기]
pool = nn.MaxPool2d(2) # 커널 크기 2x2

# [pooling 레이어에 입력 넣기]
out2 = pool(out)

print(out.size()) # torch.Size([1, 5, 24, 24])
print(out2.size()) # torch.Size([1, 5, 12, 12])