본문 바로가기

728x90
반응형

pytorch

(9)
[Pytorch] 연습 데이터로 라이브러리 익숙해지기2 이전에 만들었던 모델을 더 간단하게 만들어보자. 모델을 구현할 때 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 = ..
[Pytorch] 연습 데이터로 라이브러리 익숙해지기1 MNIST 데이터 실습 먼저 데이터를 MNIST 데이터를 가져와보자. MNIST 데이터는 손글씨(0~9)의 흑백 이미지로 구성된 데이터이다. 데이터를 가져올 주소 https://github.com/pytorch/tutorials/raw/main/_static/ file name : mnist.pkl.gz 가져온 데이터는 python pickle 파일 이기 때문에 이를 풀어 우리가 원하는 Python 데이터로 바꿔보자. # 1. Data Load import pickle import gzip PATH = input("파일 경로 입력:") FILENAME = "/mnist.pkl.gz" with gzip.open((PATH+FILENAME), "rb") as f: ((x_train, y_train), (x_..
[Pytorch] 모델 저장하고 불러오기 파이토치 한국사용자 모임의 글을 보면서 공부한 내용을 정리한 글입니다. 모델을 저장하고 불러오기를 통해 모델의 상태를 유지할 수 있다. 모델 가중치 저장 Pytorch 모델은 학습한 매개변수를 state_dict라고 불리는 내부 상태 사전(Internal State Dictionary)에 저장한다. 이 상태 값들은 torch.save 메소드를 사용하여 저장할 수 있다. import torch import torchvision.models as models model = models.vgg16(weights='IMAGENET1K_V1') # torch.save(모델의 상태 사전, 저장할 경로) torch.save(model.state_dict(), 'model_weights.pth') 모델 가중치 불러오기..
[Pytorch] 모델 매개변수 최적화하기 파이토치 한국사용자 모임의 글을 보면서 공부한 내용을 정리한 글입니다. 전전 포스트에서 우리는 모델의 Layer를 설정했었다. 이제 모델과 데이터가 준비되었으니 데이터에 매개변수를 최적화하여 모델을 학습, 검증, 테스트 할 차례이다. 모델 학습은 반복적이며 각 반복 단계에서 모델은 출력을 추측하고, 손실(Loss)를 계산하고, 매개변수에 대한 오류의 도함수(derivative)를 수집한 뒤, Gradient Descent를 사용하여 파라미터들을 Optimize 한다. Optimize 과정 이제 코드를 보면서 알아보자. 데이터를 로드하고 기본 NN 모델을 만든다. import torch from torch import nn from torch.utils.data import DataLoader from t..
[Pytorch] Autograd 파이토치 한국사용자 모임의 글을 보면서 공부한 내용을 정리한 글입니다. 신경망 학습 시 가장 자주 사용되는 알고리즘은 Back Propagation이다. 이 알고리즘에서, 매개변수(W: 모델의 가중치)는 주어진 매개변수에 대한 손실 함수의 변화도(Gradient)에 따라 조정된다. PyTorch에서는 torch.autograd 라고 불리는 자동 미분 엔진이 내장되어 있다. 이는 모든 계산 그래프에 대한 변화도의 자동 계산을 지원한다. import torch x = torch.ones(5) # input tensor y = torch.zeros(3) # expected output # requires_grad=True 옵션은 역전파를 통해 가중치의 기울기를 계산하기 위해 설정 w = torch.randn(..

728x90
반응형