본문 바로가기

분류 전체보기

(37)
[PyTorch] Save and Load the Model 이 글에서는 모델의 상태를 저장하고 불러오는 방법을 소개한다.import torchimport torchvision.models as models Save and Loading Model WeightsPyTorch 모델은 학습된 parameter들을 state_dict라 불리는 내부 dictionary에 저장한다. 이 dictionary는 torch.save 함수로 저장될 수 있다.model = models.vgg16(weights='IMAGENET1K_V1')torch.save(model.state_dict(), 'model_weights.pth') 저장된 모델 weight들을 불러오기 위해서는 같은 모델의 객체를 만든 후 load_state_dict() 함수를 사용해 parameter들을 불러온다. ..
[PyTroch] Optimizing Model Parameters 이번 글에서는 data를 사용해 모델 parameter들을 최적화 하는 방법을 소개한다. 모델을 학습은 반복 과정이다. 각 iteration에서 모델은 output의 예측값을 만들고, 에러를 계산하고 (loss), 각 parameter에 대해 미분값을 계산하고, parameter들을 gradient descent 방법을 사용해 최적화한다. Prerequisite CodeDatasets & DataLoaders와 Build Model 섹션의 코드이다.import torchform torch import nnfrom troch.utils.data import DataLoaderfrom torchvision import datasetsfrom torchvision.transform import ToTensor..
[PyTorch] Automatic Differentiation with torch.autogrid Neural network를 학습할 때 가장 많이 사용되는 알고리즘은 back propagation이다. 이 알고리즘에서는 parameter들이 loss function의 parameter에 대한 gradient에 따라 조절된다.이런 gradient를 계산하기 위해서 PyTorch에서는 내재된 differentiation 엔진인 torch.autograd를 사용한다. 아래 예제에서는 input x, parameters w와 b, 그리고 loss 함수를 사용하는 가장 간단한 one-layer neural network를 보여준다.import torchx = torch.ones(5) # input tensory = torch.zeros(3) # expected outputw = torch.randn(5,..
[PyTorch] Build the Neural Network Neural Networks는 데이터에 작업을 하는 layer와 모듈로 이루어져있다. torch.nn namespace는 사용저 정의 neural network를 만드는데 필요한 기본 구성 요소들을 제공한다. PyTorch에 있는 모든 모듈은 nn.Module의 subclass로 정의된다. Neural network란 다른 모듈들로 구성되어 있는 하나의 모듈이다. 아래 예제에서는 FashionMNIST 데이터셋 이미지들을 classify하기 위한 neural network를 만든다.import osimport torchfrom torch import nnform torch.utils.data import DataLoaderfrom torchvision import datasets, transforms G..
[PyTorch] Transforms Data는 항상 machine learning 알고리즘에 사용되는 정재된 형태로 존재하지 않는다. 따라서 transforms를 활용해 데이터를 조정하고자 한다. 모든 TrochVision 데이터셋은 transformation logic이 포함된 callables를 받는 두 개의 parameter가 존재한다.transform: feature를 바꿀 때 사용target_transform: label을 바꿀 때 사용torchvision.transforms 모듈은 자주 사용되는 transforms를 제공한다. FashionMNIST 데이터셋의 feature들은 PIL 이미지 형식이고 label들은 integer이다. 학습을 위해서 feature들은 normalized tensor로, label들은 one-hot..
[PyTorch] Datasets & DataLoaders PyTorch는 모델 학습 코드와 데이터셋 코드를 분리시켜 더 읽기 쉽고 모듈성이 뛰어나게 만들고자 한다.PyTorch에서 이미 로드된 데이터셋이나 나의 데이터셋을 사용하기 위해 두가지 데이터 primitives를 제공한다:torch.utils.data.DataLoader 와 torch.utils.data.Dataset 이다. Dataset은 샘플들과 대응하는 라벨들을 저장하고 DataLoader는 Dataset을 iterable로 감싸 쉽게 샘플들에 접근할 수 있도록 해준다. Loading a Dataset아래는 Fashion-MNIST 데이터셋을 불러오는 과정이다.FashionMNIST 데이터셋은 다음과 같은 parameter로 불러진다:root: train/test 데이터가 저장된 위치train: ..
[Pytorch] Tensors Tensor란 array나 matrix와 매우 유사한 데이터 구조이다. Pytorch에서는 이 tensor들을 이용해 모델 input과 output 뿐만 아니라 parameters들도 encode 한다. Tensor는 NumPy의 ndarrays와 매우 유사하다. 한 가지 다른 점은 tensor는 GPU나 하드웨어 가속기에서 돌아갈 수 있다는 것이다.import torchimport numpy as np Initializing a TensorFrom datadata = [[1, 2], [3, 4]]x_data = torch.tensor(data)From NumPy arraynp_array = np.array(data)x_np = torch.from_numpy(np_array)From another ten..
[논문] Knowledge Tracing: A Survey (2023) https://dl.acm.org/doi/full/10.1145/3569576온라인 학습 플랫폼이 보편화되면서 선생뿐만 아닌 기계가 학생들의 지식을 추적하고 학습 경험을 조정할 필요가 생겼습니다. 이는 Knowledge Tracing (KT) 문제로 정의됩니다. 본 논문에서는 KT 기법의 포괄적인 조사 결과를 보여줍니다. 특히 초기 KT 기법들부터 deep learning을 사용하는 state-of-the-art 기법들을 소개하고 각 모델의 이론적 배경과 benchmark 데이터셋의 특징들을 강조합니다. 또 연관된 기법들의 주요한 구현 차이점을 요약합니다. 마지막으로 현재 KT 기법들의 연구 공백과 가능한 미래 연구 방향을 제시합니다. 본 포스트에는 논문의 모든 내용이 포함되어 있지 않습니다.  1 In..