이진 분류 모델
딥러닝 실무에서 주요 업무 중 하나는 이미지 분류 모델을 학습시키는 일이에요. 그중에서도 두 개의 클래스를 구분하는 이진 분류를 자주 접하게 됩니다. 워크플로를 효율화하고 재사용성을 높이기 위해, 앞으로의 프로젝트에도 적용할 수 있는 이진 이미지 분류용 CNN 모델 템플릿을 만들어 보려고 해요.
torch 패키지와 torch.nn은 nn으로 임포트되어 있습니다. 모든 이미지 크기는 64x64 픽셀입니다.
이 연습은 강의의 일부입니다
PyTorch로 배우는 이미지 딥러닝
연습 안내
- 입력 채널 3, 출력 채널 16, 커널 크기 3, 스트라이드 1, 패딩 1인 합성곱 층을 생성하세요.
- 입력 크기가 16x32x32이고 클래스 수가 1인 완전 연결 층을 생성하세요. 제공된 순서대로 값만 포함하세요:
(16*32*32, 1). sigmoid활성화 함수를 생성하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
class BinaryImageClassifier(nn.Module):
def __init__(self):
super(BinaryImageClassifier, self).__init__()
# Create a convolutional layer
self.conv1 = ____(____)
self.relu = nn.ReLU()
self.maxpool = nn.MaxPool2d(kernel_size=2, stride=2)
self.flatten = nn.Flatten()
# Create a fully connected layer
self.fc = ____(____)
# Create an activation function
self.sigmoid = ____