본문 바로가기

pytorch4

Pytorch의 Reproducibility를 위한 설정들 같은 학습 데이터로 학습을 하고, 동일한 테스트 데이터로 테스트를 하였음에도 매번 실행해보면 모델의 학습 파라미터와 테스트 결과가 동일하지 않은 경우가 많다. 이는, 높은 수준의 재생산성(Reproducibility)을 요구하는 대회나 업무에 지장을 줄 수 있다. 이 글에선 Pytorch를 사용할 때 최대한 Reproducibility를 유지할 수 있는 방법에 대해 적어보았다. Seed 고정 난수 생성기의 seed를 고정하면, 매번 프로그램을 실행할 때마다 생성되는 난수들의 수열이 같게 할 수 있다. 그래서 pytorch와 관련 라이브러리에서 사용되는 난수 관련 seed를 고정하여야 한다. pytorch_lightning에선 pytorch와 관련된 난수 생성기의 seed를 고정하는 코드가 있다. 그 코드.. 2021. 6. 9.
Pytorch Tensor(텐서) 만들기 Pytorch의 Tensor(텐서) 조작하기 1¶ import torch import numpy as np Tensor(텐서) 를 만드는 다양한 방법¶ empty¶주어진 크기의 아무값으로도 초기화되지 않은 텐서를 만든다. 텐서 성분의 값들은 쓰레기값들이다. torch.empty(4) tensor([ 1.6751e-37, -1.9427e-13, 1.6751e-37, -1.9427e-13]) torch.empty((4,5)) tensor([[0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00], [0.0000e+00, 0.0000e+00, 0.0000e+00, 1.4013e-45, 0.0000e+00], [0.0000e+00, 0.0000e+00, 0.0.. 2021. 3. 23.
Kaggle에서 Pytorch로 간단한 Mnist 숫자 분류기 만들기 Pytorch로 간단한 Mnist 숫자 분류기 만들기¶캐글에서 Mnist 숫자를 분류하는 연습을 여기서 할 수 있다. Kaggle에서 제공하는 데이터와 환경으로 간단하게 Mnist 숫자를 분류하는 연습을 해보자. import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch import torch.nn as nn import torch.nn.functional as F from torch.utils.data import Dataset,DataLoader 사용할 경로와 epoch, 배치사이즈, learning rate를 한곳에서 쉽게 조정하여 사용할 수 있도록 하였다. class PATH: TRAIN = '/ka.. 2021. 3. 16.
Pytorch로 선형 회귀(Linear Regression) 구현하기 Pytorch로 선형회귀 구현하기¶ import numpy as np import matplotlib.pyplot as plt import torch import torch.nn as nn from torch.optim import SGD 데이터 생성¶y = 2*x + 10에서 약간의 오차를 준 데이터를 사용하였다. # y = x*2 + 10 data_x = np.random.randint(1,20,20) data_y = np.array([1*np.random.randn() + x*2 + 10 for x in data_x]) data_x = torch.FloatTensor(data_x).unsqueeze(dim=1) data_y = torch.FloatTensor(data_y).unsqueeze(dim=.. 2021. 3. 15.