더북(TheBook)

코드 5-6 심층 신경망 모델 생성

class FashionDNN(nn.Module):
    def __init__(self): ------ ①
        super(FashionDNN, self).__init__()
        self.fc1 = nn.Linear(in_features=784, out_features=256) ------ ②
        self.drop = nn.Dropout(0.25) ------ ③
        self.fc2 = nn.Linear(in_features=256, out_features=128)
        self.fc3 = nn.Linear(in_features=128, out_features=10)

    def forward(self, input_data): ------ ④
        out = input_data.view(-1, 784) ------ ⑤
        out = F.relu(self.fc1(out)) ------ ⑥
        out = self.drop(out)
        out = F.relu(self.fc2(out))
        out = self.fc3(out)
        return out

① 클래스(class) 형태의 모델은 항상 torch.nn.Module을 상속받습니다. __init__()은 객체가 갖는 속성 값을 초기화하는 역할을 하며, 객체가 생성될 때 자동으로 호출됩니다. super(FashionDNN, self).__init__()FashionDNN이라는 부모(super) 클래스를 상속받겠다는 의미로 이해하면 됩니다.

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