• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

5-1강 CNN코드에서

23.01.15 17:31 작성 23.01.15 17:54 수정 조회수 215

1

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 6, 5) # 합성곱 연산 (입력 채널수 3, 출력 채널수 6, 필터크기 5x5 , stride=1(defualt))
        self.pool1 = nn.MaxPool2d(2, 2) # 합성곱 연산 (필터크기 2, stride=2)
        self.conv2 = nn.Conv2d(6, 16, 5) # 합성곱 연산 (입력 채널수 6, 출력 채널수 16, 필터크기 5x5 , stride=1(defualt))
        self.pool2 = nn.MaxPool2d(2, 2) # 합성곱 연산 (필터크기 2, stride=2)
        self.fc1 = nn.Linear(16 * 5 * 5, 120) # 5x5 피쳐맵 16개를 일렬로 피면 16*5*5개의 노드가 생성
        self.fc2 = nn.Linear(120, 10) # 120개 노드에서 클래스의 개수인 10개의 노드로 연산

    def forward(self, x):
        x = self.pool1(F.relu(self.conv1(x))) # conv1 -> ReLU -> pool1
        x = self.pool2(F.relu(self.conv2(x))) # conv2 -> ReLU -> pool2
        x = x.view(-1, 16 * 5 * 5) # 5x5 피쳐맵 16개를 일렬로 만든다.
        x = F.relu(self.fc1(x)) 
        x = self.fc2(x)

        return x

net = Net().to(device) # 모델 선언

에 x = x.view(-1, 16 * 5 * 5) # 5x5 피쳐맵 16개를 일렬로 만든다.

에서 -1이 배치의 개수라고 하셨는데 그럼 이 파일의 코드에서

trainloader = torch.utils.data.DataLoader(trainset, batch_size=8, shuffle=True)

trainloader에서 batch_size 가 8이니까 -1값이 제일 마지막에 나누어 떨어지지 않을 때 제외하고

8 인건가요??

아니면

print(len(trainloader))

하니까 6250이 나오는데 6250일까요..

배치의 크기를 의미하는건지 헷갈립니다..

답변 1

답변을 작성해보세요.

0

안녕하세요.

8이 맞습니다!

8은 배치 사이즈이고 6250은 배치의 갯수입니다 :)

 

감사합니다.