본문 바로가기
728x90

PyTorch로 시작하는 딥 러닝 입문5

nn.Module로 구현하는 선형 회귀 이전 게시글은 직접적으로 가설을 제시해, 비용 함수를 직접 정의해서 선형 회귀 모델을 구현했다. 이번에는 파이토치에서 이미 구현되어 제공되고 있는 함수들을 불러오는 것으로 선형 회귀 모델을 구현해 보자. 단순 선형 회귀 구현하기 import torch import torch.nn as nn #torch.nn은 딥러닝 모델을 구성하는 레이어 및 모듈을 제공 import torch.nn.functional as F import torch.optim as optim torch.manual_seed(1) 필요한 도구들을 임포트 하고, 이제 데이터를 선언한다. 아래 데이터는 y= 2x를 가정된 상태에서 만들어진 데이터로 우리는 이미 정답이 W=2, b=0 임을 알고 있는 사태다. 모델이 이 두 W와 b의 값을 제.. 2024. 3. 4.
다중 선형 회귀(Multivariable Linear regression) 앞서 배운 x가 1개인 선형 회귀를 단순 선형 회귀라고 한다. 이번 챕터에서는 다수의 x로부터 y를 예측하는 다중 선형 회귀에 대해서 이해한다. 1. 데이터에 대한 이해(Data Definition) 다음과 같은 훈연 데이터가 있습니다. 앞서 배운 단순 선형 회귀와 다른 점은 독립 변수 x의 개수가 이제 1개가 아닌 3개라는 점입니다. 3개의 퀴즈 점수로부터 최종 점수를 예측하는 모델을 만들어보자 독립 변수 x의 개수가 3개이므로 이를 수식으로 표현하면 아래와 같다. H(x) = w1x2 + w2x2 + w3x3 + b 2. 파이토치로 구현하기 우선 필요한 도구들을 임포트 하고 랜덤 시드를 고정한다. import torch import torch.nn as nn import torch.nn.functio.. 2024. 2. 2.
자동 미분(Autograd) 경사 하강법 코드는 requires_grad=True, backward()등이 나온다. 이는 파이토치에서 제공하는 있는 자동 미분(Autograd) 기능을 수행하고 있는 것이다. 파이토치의 학습 과정을 보다 더 잘 이해하기 위해서 자동 미분에 대해서 이해해 보자. 자동 미분(Autograd) 실습하기 자동 미분에 대해서 실습을 해보자. 임의로 2w^2 + 5라는 식을 세워보고, w에 대해 미분해 보겠습니다. import torch 값이 2인 임의의 스칼라 텐서를 w를 선언합니다. 이때 required_grad를 Ture로 설정합니다. 이는 이 텐서에 대한 기울기를 저장하겠다는 의미 한다. w = torch.tensor(2.0, requires_grad = True) 이제 수식을 정의한다. y=w**2 z.. 2024. 1. 26.
Linear Regression(선형 회귀) 1. 데이터에 대한 이해(Data Definition) 선형 회귀를 위해 사용할 예제는 공부한 시간과 점수에 대한 상관관계이다. 1시간 : 2점 2시간 : 4점 3시간 : 6점 4시간:? ex) 위에 표를 보고 어떤 학생이 1시간 공부를 했더니 2점을 맞았다. 그렇다면, 내가 4시간을 공부한다면 몇 점을 맞을 수 있을까? 이 질문에 대답하기 위해서 앞서 나온 정보를 이용해야 한다. 이때 예측을 위해 사용하는 데이터를 훈련 데이터셋(training dataset)이라고 한다. 학습이 끝난 후, 이 모델이 얼마나 잘 작동하는지 판별하는 데이터셋을 테스트 데이터셋(test dataset)이라고 한다. 1-2. 훈련 데이터셋의 구성 앞서 텐서에 대해서 배웠는데, 모델을 학습시키기 위한 데이터는 파이토치의 텐서의.. 2024. 1. 24.
텐서 조작하기(2) 넘파이로 텐서 만들기(벡터와 행렬 만들기) 우선 numpy를 임포트 합니다. import numpy as np 1차원 벡터를 만들어주고 벡터의 차원과 크기도 출력해 줍니다. #numpy로 1차원 텐서인 벡터를 만들어준다. t = np.array([0.,1.,2.,3.,4.,5.]) print(t) print('Rank of t: ', t.ndim)#.ndim 몇차원인지 알려준다. 1차원 벡터 print('Shape of t: ', t.shape) #.shape 크기를 알려준다. 총 6개의 벡터 # [0. 1. 2. 3. 4. 5.] # Rank of t: 1 # Shape of t: (6,) - 텐서의 크기(shape)를 표현할 때는, 1차원은 벡터, 2차원은 행렬, 3차원은 3차원 텐서라고 부른다. 현.. 2024. 1. 3.
728x90