네이버 부스트캠프 학습 정리/2주차 5

[PyTorch] PyTorch 알쓸신잡

모델 불러오기 model.save() - 학습의 결과를 저장하기 위한 함수 - 모델 형태와 파라메터를 저장 - 모델 학습 중간 과정의 저장을 통해 최선의 결과모델 선택 - 만들어진 모델을 외부 연구자와 공유 가능 checkpoints - 학습의 중간 결과를 저장하여 최선의 결과 선택 - earlystopping 기법시 이전 학습의 결과 저장 - loss와 metric 값을 지속적으로 확인 저장 - epoch, loss, metric를 함께 저장 pretrained model Transfer learning - 다른 데이터셋으로 만든 모델을 현재 데이터에 적용 - 대용량 데이터셋으로 만들어진 모델의 성능을 높임 - 현재 가장 일반적인 기법 PyTorch 기록 monitoring Tensorboard - T..

[PyTorch] PyTorch의 데이터

파이토치는 대규모 데이터를 통해 딥러닝을 학습하는 경우 사용하는 툴인 만큼 그 대량의 데이터를 모델에 먹이는 과정이 중요하다. 이를 다루는 것이 datasets 와 dataloaders이다. PyTorch의 데이터를 위한 모듈들 - torch.utils.data : 데이터셋의 표준을 정의하고, 자르고, 섞는데 쓰는 도구들이 들어있는 모듈. 데이터셋의 표준을 torch.utils.data.Dataset에 정의 후 이를 상속하는 파생 클래스는 torch.utils.data.DataLoader 인스턴스의 입력으로 사용함 - torchvision.dataset : torch.utils.data.Dataset을 상속하는 이미지 데이터셋의 모음으로 MNIST나 CIFAR-10 등의 CV 예제에 기본이 되는 데이터셋..

[PyTorch] parameter & buffer

parameter torch.nn.parameter 클래스를 통해 자동미분이 가능한 torch.Tensor 객체들을 만들 수 있다. 이 클래스는 torch.Tensor 클래스를 상속받은 자식 클래스이며 torch.nn.Module 클래스의 attribute로 할당하는 경우 model.parameters()에 자동으로 추가된다. 예를 들어 linear transformation \(y = xw + b\)의 식에서 x는 torch.Tensor로 구현할 수 있지만 가중값 w와 편향 b는 만들 수 없다. 이 경우 nn.Module 내의 미리 만들어진 tensor를 보관할 수 있는 nn.Parameter 모듈을 사용한다. import torch from torch import nn from torch.nn.par..

[PyTorch] nn.Module

torch.nn.Module 딥러닝을 구성하는 Layer의 base class로 input, output, forward, backward를 정의하고 학습의 대상이 되는 parameter도 정의하는 모듈 ex) Linear 함수를 구현 import torch from torch import nn from torch import Tensor class MyLiner(nn.Module): def __init__(self, in_features, out_features, bias=True): super().__init__() self.in_features = in_features self.out_features = out_features self.weights = nn.Parameter( torch.randn..

[PyTorch] 파이토치의 기본

PyTorch? 텐서플로우와 함께 대표적인 딥러닝 프레임워크이며 근래 유저의 사용량이 텐서플로우를 넘어서고 있음. Define by Run 실행을 하며 그래프를 생성하는 방식으로 텐서플로우와 가장 비교되는 파이토치의 생성 방식. 이 때문에 교육용과 연구용 모두에서 파이토치를 사용하는 사람의 비중이 늘어나고 있음. numpy + AutoGrad numpy와 같은 구조를 가지는 Tensor 객체로 다차원 Array를 표현함. (numpy의 ndarray와 동일) import numpy as np n_array = np.arange(10).reshape(2,5) print(n_array) print("ndim :", n_array.ndim, "shape :", n_array.shape) # [[0 1 2 3 ..