딥러닝 모델: 파이토치(71)
-
Pytorch로 시작하는 딥러닝 입문(03-03 다중선형회귀:Multivariable Linear regression)
앞서 배운 x가 1개인 선형 회귀를 단순선형회귀(Simple Linear Regression)이라고 한다. 다수의 x로부터 y를 예측하는 다중선형회귀에 대해 이야기해보자. ♣ 데이터 3개의 퀴즈 점수를 이용하여 최종 점수(Final)을 예측하는 모델을 만들려고 한다. 독립변수 x가 3개이므로 수식으로 표현하면 아래와 같다. ♣ 파이토치로 구현하기1. 필요한 도구를 import하고 랜덤 시드 고정하기 2. 훈련 데이터 선언하기단순선형회귀와 달리 x를 3개 선언한다. 3. 가중치 w와 편향 b 선언하기x가 3개이므로 가중치도 3개이다. 4. 가설, 비용함수, 옵티마이저를 선언하고 경사하강법을 1000회 반복하기 ♣ 벡터와 행렬 연산으로 바꾸기x의 개수와 가중치의 수가 늘어나는 경우, 이를 일..
2024.02.12 -
Pytorch로 시작하는 딥러닝 입문(03-02 자동 미분: Autograd, Forward Pass, Backward Pass)
♣ 자동 미분경사하강법에서는 requires_grad=True, backward( ) 등이 등장한다. 이는 파이토치에서 제공하는 자동미분 기능을 수행하는 코드이다. 경사하강법을 수행하기 위해서는 손실함수를 가중치들에 대해서 미분한 값이 필요하다. 즉 모델을 구성하는 각 가중치 파라미터들에 대해 미분값을 구하는 것이다. ♣ Forward Passx를 input으로 가지고 가중치 W를 가지는 뉴럴넷이 있다고 가정하자. Forward pass는 Gradient를 구하기에 앞서서 먼저 미분할 대상을 계산하는 과정을 의미한다. ♣ Backward PassForward pass에서 출력된 값을 가중치 W에 대해서 미분하는 과정을 의미한다. ♣ 자동 미분 실습하기
2024.02.12 -
Pytorch로 시작하는 딥러닝 입문(02-04 파이썬 클래스)
♣ 함수(function)과 클래스(class)의 차이 1. 함수로 두 개의 덧셈기 구현하기 독립적인 두 개의 덧셈기 만들기. 한 책상에 두 개의 계산기를 두고 서로 다른 연산을 하는 것과 마찬가지임. 각각의 계산기에서 서로 다른 연산을 하기 때문에 두 개의 함수를 독립적으로 만들어야 함. 2. 클래스로 두 개의 덧셈기 구현하기 위는 하나의 덧셈기를 클래스로 구현한 것임. 클래스를 생성한 후에는 이를 이용하여 객체를 만들 수 있음. 클래스는 하나지만 여러 개의 객체를 만들 수 있는 것! 두 개의 객체를 생성했으니 두 개의 객체에 대해서 동시에 독립적인 덧셈 연산이 가능해짐 두 객체는 독립적으로 연산되고 있음. 두 개의 덧셈기를 함수로 구현하려면 함수를 두 개 만들어야 하지만 클래스를 이용하여 구현하면 클..
2024.02.04 -
Pytorch로 시작하는 딥러닝 입문(02-03 텐서 조작하기)
♣ 텐서 초기화1. 지정된 값으로 초기화 2. 랜덤한 값으로 초기화 3. Numpy array로부터 초기화 ♣ Tensor 데이터의 형식 지정1. 정수(int)torch.int8, torch.int16, torch.int32, torch.int64(=torch.long)torch.uint8: 양의 정수 0~225 숫자만 포함. 주로 이미지 데이터를 다룰 때 사용 2. 소수(float)torch.float16, torch.float32, torch.float64 3. booleantorch.bool 다른 데이터 타입으로 변경할 수도 있다. ♣ 다른 Device로 Tensor 옮기기당연히 "cpu"로도 옮길 수 있다. ♣ 인덱싱 ♣ view파이토치 텐서의 view는 numpy에서의 reshape와 ..
2024.02.02 -
Pytorch로 시작하는 딥러닝 입문(02-02 텐서 조작하기)
♣ 벡터, 행렬, 텐서(Vecto, Metrix, Tensor) - 차원이 없는 값을 스칼라, 1차원으로 구성된 값을 벡터라고 함. 벡터를 1차원 텐서라고도 함- 2차원으로 구성된 값을 행렬(Matrix)라고 함. 2차원 텐서라고도 함. - 3차원을 텐서(Tensor)라고 함. - 텐서(torch.Tensor)는 Numpy의 배열, 행렬과 매우 유사한 자료구조임. 파이토치에서 scalar, vector, matrix, tensor 등을 표현하는 데 사용- tensor는 backward pass에서 계산된 Gradient를 저장하는 기능이 있음. 즉 torch.Tensor에 어떤 operation(더하기, 곱셈 등)을 취하면 해당 operation이 Computational Graph에 기록된다. ♣ ..
2024.01.31 -
Pytorch로 시작하는 딥러닝 입문(02-01 파이토치 패키지의 기본 구성)
♣ torch메인 네임스페이스. 텐서 등의 다양한 수학 함수를 포함하고 있으며 Numpy와 유사한 구조 가짐 ♣ torch.autograd자동 미분을 위한 함수를 포함하고 있음. 자동 미분의 on/off를 제어하는 콘텍스트 매니저(enable_grad/no_grad)나 자체 미분 가능 함수를 정의할 때 사용하는 기반 클래스인 Function 등이 포함되어 있음. ♣ torch.nn신경망을 구축하기 위한 다양한 데이터 구조나 레이어 등이 정의되어 있음. RNN, LSTM과 같은 레이어, ReLU와 같은 활성화 함수, MSELoss와 같은 손실 함수들이 있음 ♣ torch.optim확률적 경사 하강법(Stochastic Gradient Descent, SGD)를 중심으로 한 파라미터 최적화 알고리즘이 구현..
2024.01.30