728x90
반응형
이전에 만들었던 모델을 더 간단하게 만들어보자.
모델을 구현할 때 Layer를 정해주지 않고 내가 원하는 방식의 NN을 만드는 방법(사용자 정의 레이어)이 있다.
바로 nn.Sequential을 사용하면 간단하다.
여기서 CNN을 사용해 신경망을 구축 해볼 것이다.
# 데이터 전처리 레이어(사용자 정의 레이어)
class Lambda(nn.Module):
def __init__(self,func):
super().__init__()
self.func = func
def forward(self,x):
return self.func(x)
def preprocess(x):
return x.view(-1,1,28,29)
from torch import nn,optim
# Sequential 사용
model = nn.Sequential(
Lambda(preprocess),
nn.Conv2d(1,16,kernel_size=3,stride=2,padding=1),
nn.ReLU(),
nn.Conv2d(16,16,kernel_size=3,stride=2,padding=1),
nn.ReLU(),
nn.Conv2d(16,10,kernel_size=3,stride=2,padding=1),
nn.ReLU(),
nn.AdaptiveAvgPool2d(1),
Lambda(lambda x: x.view(x.size(0), -1)),
)
opt = optim.SGD(model.parameters(),lr=0.5,momentum=0.9)
fit 함수를 사용하여 학습을 해보자
fit(50, model, loss_func, opt, train_dl, valid_dl)
pytorch.nn 실습2.ipynb
Colaboratory notebook
colab.research.google.com
728x90
반응형
'AI > AI 라이브러리' 카테고리의 다른 글
[Tensorflow] 모델 만들기 (0) | 2024.01.09 |
---|---|
[Tensorflow] Tensorflow 입문 (0) | 2024.01.08 |
[Pytorch] 연습 데이터로 라이브러리 익숙해지기1 (0) | 2024.01.02 |
[Pytorch] 모델 저장하고 불러오기 (0) | 2023.12.29 |
[Pytorch] 모델 매개변수 최적화하기 (0) | 2023.12.28 |