뭔가 어렵게 느껴지는데 앞으로 구현할 코드를 살펴보면 크게 어렵지 않습니다. 다음은 앞으로 다룰 코드입니다. 그중 forward() 부분에 대해서만 살펴보겠습니다.

    def forward(self, x):
            i = x
            x = self.conv1(x)
            x = self.bn1(x)
            x = self.relu(x)
            x = self.conv2(x)
            x = self.bn2(x)
    
            if self.downsample is not None:
                i = self.downsample(i) ------ 다운샘플 적용
    
            x += I ------ 아이덴티티 매핑 적용
            x = self.relu(x)
            return x

    코드를 살펴보면 입력 xi라는 변수에 저장했습니다. 입력 x는 합성곱층을 통과하다가 마지막 xI를 더해 주었습니다. 예를 들어 x가 (28, 28, 64)라고 가정해 봅시다. xi 변수에 저장했기 때문에 (28, 28, 64)가 될 것입니다. 그리고 합성곱층을 통과하면서 같은 형태를 더하기 때문에 최종 형태는 (28, 28, 64) 그대로가 될 것입니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.