코딩 116

파이토치 - 전이 학습

1. 데이터 준비 1) DataLoader 작성 # 구글 드라이브와 구글 코랩을 연동 from google.colab import drive drive.mount('/content/gdrive') # 라이브러리 불러오기 import torch from torch import nn, optim from torch.utils.data import (Dataset, DataLoader, TensorDataset) import tqdm # DataLoader 작성 from torchvision.datasets import ImageFolder from torchvision import transforms # ImageFolder 함수를 사용해서 Dataset 작성 train_imgs = ImageFolder("..

파이토치 - 로지스틱 회귀

1. 파이토치를 사용한 로지스틱 회귀분석 1) iris 데이터 준비 # 라이브러리와 iris 데이터 불러오기 import torch from torch import nn, optim from sklearn.datasets import load_iris iris = load_iris() # iris는 (0,1,2)의 세 가지 종류를 분류하는 문제이므로 (0,1)의 두 개의 데이터만 사용한다. # 원래는 학습용과 테스트용으로 나누어야 하지만 여기선 생략한다. X = iris.data[:100] y = iris.target[:100] # Numpy의 ndarray를 PyTorch의 Tensor로 변환 X = torch.tensor(X, dtype=torch.float32) y = torch.tensor(y, ..

파이토치 - 선형 회귀 모델

1. 파이토치로 선형 회귀 모델 만들기 (직접 만들기) y = 1 + 2x1 + 3x2 1) 테스트 데이터 생성 및 파라미터 학습을 위한 변수 정의 # 라이브러리 불러오기 import torch # 참(True)의 계수 w_true = torch.Tensor([1, 2, 3]) w_true # X 데이터 준비. 절편을 회귀 계수에 포함시키기 위해 X의 최초 차원에 1을 추가해 둔다. X = torch.cat([torch.ones(100, 1), torch.randn(100, 2)], 1) X # 참의 계수와 각 X의 내적을 행렬과 벡터의 곱으로 모아서 계산 y = torch.mv(X, w_true) + torch.randn(100) * 0.5 y # 기울기 하강으로 최적화하기 위해 파라미터 Tensor를..

파이토치 - 텐서 / 자동 미분

1. 텐서 생성과 변환 1) 텐서 생성 # 라이브러리 불러오기 import numpy as np import torch # 중첩 list를 지정 t = torch.tensor([[1,2],[3,4.]]) t # device를 지정하면 GPU에 텐서를 만들 수 있다. t = torch.tensor([[1,2],[3,4.]],device="cuda:0") t # dtype을 사용해 데이터형을 지정하여 텐서를 만들 수 있다. t = torch.tensor([[1,2],[3,4.]], dtype=torch.float64) t # 0부터 9까지의 수치로 초기화된 1차원 텐서 t = torch.arange(0, 10) t # 모든 값이 0인 100*10의 텐서를 작성해서 to 메서드로 GPU에 전송 t = torc..

파이토치 무작정 시작하기 6 - 모델 변수 프리징

https://www.youtube.com/watch?v=WCByVWpf4rQ # 라이브러리 임포트 import torch import torchvision import torchvision.transforms as transforms # data preprocessing from torch.utils.data import DataLoader # mini-batch import torch.nn as nn # loss import torch.optim as optim # optimizer # 구글 드라이브와 구글 코랩을 연동 from google.colab import drive drive.mount("/content/gdrive") # 데이터 경로 지정 및 GPU 설정 path = '/content/gd..

파이토치 무작정 시작하기 5 - GPU를 사용한 전이 학습 (colab 사용)

전이학습 이미 알고 있는 지식(데이터, 모델 등)을 다른 문제에 적용하여 풀어가는 과정 가지고 있는 데이터 양이 충분하지 않을 때, 외부 소스로 부터 좋은 특징들을 가져와서 모델에 사용 학습 데이터가 부족하더라도 원하는 모델을 학습할 수 있고 학습 시간을 줄일 수 있다. https://www.youtube.com/watch?v=hOSrn41lCkg # 라이브러리 불러오기 import torch import torchvision from torchvision import transforms import torchvision.transforms as transforms # data processing from torch.utils.data import DataLoader # mini-batch import ..

파이토치 무작정 시작하기 4 - CNN 기본 모델 구축

https://www.youtube.com/watch?v=Gm9Spk2Nmj0 # 라이브러리 불러오기 import torch import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader Load data set # 파이토치에서 제공하는 CIFAR10 데이터셋 불러오기 transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))]) trainset = torchvision.datasets.CIFAR10(root='C:/pypy', train=True, down..

파이토치 무작정 시작하기 3 - 데이터 불러오기

https://www.youtube.com/watch?v=8PnxJ3s3Cwo # 라이브러리 불러오기 # torchvision.transforms : 데이터를 불러오면서 바로 전처리를 할 수 있게 해준다. # DataLoader : 배치사이즈 형태로 만들어서 실제로 학습할때 이용할 수 있는 형태로 만든다. # Dataset : 튜닝할때 사용 import torch import torchvision import torchvision.transforms as tr from torch.utils.data import DataLoader, Dataset import numpy as np 1. 파이토치 제공 데이터 사용 # 데이터 전처리 # tr.Compose()안의 순서대로 전처리 작업 수행 # 인풋데이터 8*..

파이토치 무작정 시작하기 2 - 패키지 구성 / 자동 미분 계산

파이토치 패키지 구성 구성 내용 설명 torch 메인 네임스페이스로 텐서 등의 다양한 수학 함수가 이 패키지에 포함되어 있다. NumPy와 같은 구조를 가지고 있다. torch.autograd 자동 미분을 위한 함수가 포함돼 있다. 자동 미분의 on/off를 제어하는 콘텍스트 매니저(enable_grade/no_grade)나 자체 미분 가능 함수를 정의할 때 사용하는 기반 클래스인 'Function' 등이 포함돼 있다. torch.nn 신경망을 구축하기 위한 다양한 데이터 구조나 레이어 등이 정의돼 있다. 예를 들어 Convolution이나 LTSM, ReLU 등의 활성화 함수나 MSELoss 등의 손실 함수도 포함된다. torch.optim 확률적 경사 하강법(SGD, Stochastic Gradien..

파이토치 무작정 시작하기 1 - 파이토치 / 텐서

파이토치(Pytorch)란? Python 기반의 과학 연산 패키지 NumPy를 대체하면서 GPU를 이용한 연산이 필요한 경우 사용 최대한의 유연성과 속도를 제공하는 딥러닝 연구 플랫폼이 필요한 경우 사용 파이토치의 장점 텐서플로보다 간결해서 쉽게 사용할 수 있다. 학습 및 추론 속도가 빠르고 다루기 쉽다. Define-by-Run 프레임워크 많은 논문들이 파이토치로 구현 https://www.youtube.com/watch?v=6SF_qAd99Yg 텐서 (Tensor) 파이토치의 기본 단위 다차원 배열을 처리하기 위한 데이터 구조 Numpy의 ndarray와 거의 같은 API를 지니고 있다. GPU를 사용한 계산도 지원한다. 어떤 데이터 형의 텐서이건 torch.tensor라는 함수로 작성할 수 있다. ..

반응형