Deep dive into Pytorch11 Pytorch 5 : Save and Load import torch import torchvision.models as models 이번 글은 학습된 모델을 저장하고, 불러오는 방식에 대한 코드이다. 파이토치 모델은 학습된 파라미터를 가지고 있고 이 파라미터들을 파이썬 자료형인 Dictionary 형태로 저장하고 있다. 이를 우리는 'state_dict'이라 한다. 이를 우리는 'torch.save()'를 사용하여 저장할 수 있다. model = models.vgg16(weights = 'IMAGENET1K_V1') torch.save(model.state_dict(), 'model_wights.pth') model 변수는 ImageNet을 활용하여 사전학습된 모델 VGG16을 가리키고 있다. 물론 사용자가 자신이 직접 학습시킨 모델을 활용하고 싶.. 2023. 7. 17. Pytorch 4 : Training 우리가 Neural network를 학습시킬 때 사용되는 알고리즘은 '역전파 알고리즘' (Backpropagation)이라고 한다. 이 알고리즘을 활용해서 우리는 모델의 가중치 (weight, parameter)를 loss function의 gradient를 활용해서 조정해간다. 예를 들어 (Mini-batch) Stochastic gradient descent 알고리즘은 다음과 같이 파라미터 업데이트를 진행한다. $w_{t+1} = w_t - \eta_t \sum_{i=1}^b \nabla \mathcal{L}_i(w_t)$ 여기서 $w_t$는 t번째 iteration에서의 파라미터, $\eta_t$는 t번째 iteration에서의 step-size (또는 learning-rate), $\mathcal.. 2023. 7. 16. Pytorch 3 : Neural network 구현 import os import torch import torch.nn as nn from torch.utils.data import DataLoader from torchvision import datasets, transforms 오늘은 Neural network 모델 설계를 위한 코드를 보도록 하자. 우선, 그 전에 다음과 같은 코드를 한 번 살펴보자. 이 코드는 만약에 파이토치가 CUDA, CUDNN등의 nvidia gpu를 위한 라이브러리와 제대로 연동이 되었는지, 즉 Tensor를 GPU에서 저장하고 연산을 GPU를 활용하여 수행할 수 있는지를 확인할 수 있는 코드이다. device = ( "cuda" if torch.cuda.is_available() else "cpu" ) 만약 'cuda'가.. 2023. 7. 15. Pytorch 2 import torch from torch.utils.data import Dataset from torch.utils.data import DataLoader from torchvision import datasets from torchvision.transforms import ToTensor 오늘은 Dataset과 DataLoader에 대해 알아보자. 당연히 Neural network를 학습시킬 때 우리에게 중요한 건 데이터이다. 파이토치에는 우리가 모델 학습에 많이 쓰는 다양한 데이터셋 (Image, Text, Audio etc) 이 저장되어져 있다. 그것을 보관하고 있는 모듈이 'Dataset' 모듈이다. 예를 들어 Fashion-MNIST dataset을 사용하고 싶다면 다음과 같이 하면 된다.. 2023. 7. 11. Pytorch 1. Tensor 파이토치에서 Tensor는 가장 기본이 되는 데이터형태이다. 원래는 물리에서 정의되는 용어이지만, 딥러닝에서는 그냥 '다차원 배열'이라고 생각하면 된다. (N-dimensional array) 이와 상당히 유사한 데이터형태로 Numpy의 Ndarray가 있다. 파이토치에서 우리는 모델의 input (= Data), output, parameter 들에 대해서 모두 Tensor를 사용한다. import torch data = [[1,2],[3,4]] x_data = torch.tensor(data) Tensor 를 선언하는 방법은 다양한 방법이 존재한다. 위와 같이 파이썬의 리스트 (또는 넘파이의 ndarray)를 선언한 이후 torch.tensor()를 활용하면 Tensor로 바꿀 수 있다. 또는 tor.. 2023. 7. 6. 이전 1 2 3 다음