인공지능/파이토치

파이토치 - 신경망의 모듈화

해피밀세트 2020. 7. 20. 21:02
반응형

 

 

 

 

1) 활성화 함수 ReLU와 Dropout을 내장하는 커스텀 선형 계층을 만들고, 그것을 이용해서 MLP 작성

 

# 모듈 만들기

class CustomLinear(nn.Module):

  def __init__(selfin_features,

               out_features,

               bias=Truep=0.5):

    super().__init__()

    self.linear = nn.Linear(in_features,

                            out_features,

                            bias)

    self.relu = nn.ReLU()

    self.drop = nn.Dropout(p)

 

  def forward(selfx):

    x = self.linear(x)

    x = self.relu(x)

    x = self.drop(x)

    return x

# 모듈로 네트워크 구성

mlp = mm.Sequential(

    CustomLinear(64200),

    CustomLinear(200200),

    CustomLinear(200200),

    nn.Linear(20010)

)

 

 

2) nn.Module을 상속한 클래스 이용 

 

class MyMLP(nn.Module):

  def __init__(selfin_features,

               out_features):

    super().__init__()

    self.ln1 = CustomLinear(in_features, 200)    

    self.ln2 = CustomLinear(200200)

    self.ln3 = CustomLinear(200200)

    self.ln4 = CustomLinear(200, out_features)

 

  def forward(selfx):

    x = self.ln1(x)

    x = self.ln2(x)

    x = self.ln3(x)

    x = self.ln4(x)

    return x

 

mlp = MyMLP(6410)

반응형