머신러닝 & 딥러닝 [PyTorch] 신경망 모델 구축 방식 - nn.Sequential을 사용하는 방법 nn.Sequential을 사용하여 간단한 신경망 구조를 구성할 수 있다. 이 방식은 각 층을 순차적으로 쌓아올린다. import torch import torch.nn as nn model = nn.Sequential( nn.Linear(784, 128), nn.ReLU(), nn.Linear(128, 64), nn.ReLU(), nn.Linear(64, 10), nn.Softmax(dim=1) ) nn.Module을 사용하는 방법 nn.Module을 사용하여 사용자 정의 신경망 구조를 구성할 수 있다. 이 방식은 객체 지향 프로그래밍을 사용하여 모델을 정의한다. import torch import torch.nn as nn class MyModel(nn.Module): def __init__(self): super(MyModel, self).__init__() self.dense1 = nn.Linear(784, 128) self.dense2 = nn.Linear(128, 64) self.dense3 = nn.Linear(64, 10) def forward(self, x): x = nn.functional.relu(self.dense1(x)) x = nn.functional.relu(self.dense2(x)) return nn.functional.softmax(self.dense3(x), dim=1) model = MyModel() 모델을 하위 클래스로 정의하는 방법 (Model Subclassing) 이 방법은 nn.Module을 사용하여 사용자 정의 신경망 구조를 구성하는 것과 유사하다. 다만, 이 방식은 기존의 모델을 상속받아 새로운 모델을 정의하는 경우에 사용한다. import torch import torch.nn as nn class BaseModel(nn.Module): def __init__(self): super(BaseModel, self).__init__() self.dense1 = nn.Linear(784, 128) self.dense2 = nn.Linear(128, 64) def forward(self, x): x = nn.functional.relu(self.dense1(x)) return nn.functional.relu(self.dense2(x)) class MyModel(BaseModel): def __init__(self): super(MyModel, self).__init__() self.dense3 = nn.Linear(64, 10) def forward(self, x): x = super().forward(x) return nn.functional.softmax(self.dense3(x), dim=1) model = MyModel() 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기MINISTOP Contents 당신이 좋아할만한 콘텐츠 Seq2seq(sequence-to-sequence) 2023.06.13 Isolation Forest 2023.06.04 [Tensorflow] 신경망 모델 구축 방식 2023.05.06 K-평균 군집화(K-means Clustering) 2023.04.23 댓글 0 + 이전 댓글 더보기