목록PyTorch (6)
욤미의 개발일지
📌 구글 colab에서 실습한 내용 파이토치의 대부분의 구현체들은 대부분 모델을 생성할 때 클래스(Class)를 사용한다. 선형 회귀를 클래스로 구현해보자. 1. 모델을 클래스로 구현하기 __int__() 생성자: 객체가 생성될 때 자동으로 호출 super(): 클래스는 nn.Module 클래스의 속성들을 가지고 초기화 foward():모델이 학습데이터를 입력받아서 forward 연산을 진행시키는 함수로 model 객체를 데이터와 함께 호출하면 자동으로 실행된다. class LinearRegressionModel(nn.Module): # torch.nn.Module을 상속받는 클래스 def __init__(self): # 생성자, 객체가 생성될 때 자동으로 호출 super().__init__() self..
📌 구글 colab에서 실습한 내용 선형 회귀(Linear Regression) 공부한 시간(x)과 점수(y)에 대한 상관관계로 선형 회귀 모델 구현하기 1시간 → 2점 2시간 → 4점 3시간 → 6점 일 때, 4시간을 공부한다면 몇 점을 맞을 수 있을까? 1. 데이터셋 구성 훈련 데이터셋(training dataset): 예측을 위해 모델을 학습하는데 사용하는 데이터 테스트 데이터셋(test dataset): 학습이 끝난 후, 모델이 얼마나 잘 작동하는지 판별하는 데이터셋 2. 가설(Hypothesis) 수립 머신 러닝에서 가설이란 임의로 추측해서 세우는 식 경험적으로 알고 있는 식 맞는 가설이 아니라고 판단되면 계속 수정하는 식 선형회귀는 학습 데이터와 가장 잘 맞는 하나의 직선 방정식을 찾는 것이다..
📌 구글 colab에서 실습한 내용 1. 뷰(View) ✨매우 중요✨ 원소의 개수를 유지하면서 텐서의 크기를 변경한다. 사이즈가 -1로 설정되면 다른 차원으로 부터 해당 값을 유추한다. Numpy의 Reshape와 같은 역할을 수행한다. 임의의 3차원 텐서를 만들고 크기를 변경해본다. import torch import numpy as np t = np.array([[[0,1,2], [3,4,5]], [[6,7,8], [9,10,11]]]) ft = torch.FloatTensor(t) # 3차원 numpy array를 3차원 tensor로 print(ft.shape) # 텐서의 크기(shape)확인, torch.Size([2, 2, 3]) 차원, 행, 열 ''' torch.Size([2, 2, 3]) ..
📌 구글 colab에서 실습한 내용 Numpy와 동일하게 슬라이싱과 인덱싱 가능하다. tensor = torch.ones(3, 4) tensor[:,1] = 0 print(tensor) ''' tensor([[1., 0., 1., 1.], [1., 0., 1., 1.], [1., 0., 1., 1.]]) ''' 1. 텐서 연결하기(Concatenate) - torch.cat t1 = torch.cat([tensor, tensor, tensor], dim=0) # 가장 큰 차원에서 부터 0, 행 추가 print(t1) ''' tensor([[1., 0., 1., 1.], [1., 0., 1., 1.], [1., 0., 1., 1.], [1., 0., 1., 1.], [1., 0., 1., 1.], [1.,..
📌 구글 colab에서 실습한 내용 1. Import packages colab에서 pytorch를 사용하려면 런타임 유형을 변경해야한다. 타임의 유형을 변경한다. 상단 메뉴 [런타임]→[런타임유형변경]→[하드웨어가속기]→[GPU] 변경 이후 아래의 cell을 실행 시켰을 때, torch.cuda.is_avialable()이 True가 나와야 한다. 사용하려는 pytorch 패키지를 import 해준다. import torch print(torch.__version__) print(torch.cuda.is_available()) 2. 벡터, 행렬, 텐서 벡터(Vector): 1차원으로 구성된 값 행렬(Matrix): 2차원으로 구성된 값 텐서(Tensor): 3차원으로 구성된 값 4차원 이상 부터는 3차..
기본 패키지 1. torch(메인 네임스페이스) 텐서 등의 다양한 수학 함수 포함 Numpy와 유사한 구조를 가진다. 2. torch.autograd 자동 미분을 위한 함수 포함 자동 미분의 on/off를 제어하는 콘텍스트 매니저(enable_grad/no_grad)나 자체 미분 가능 함수를 정의할 때 사용하는 기반 클래스인 'Function' 등이 포함되어져 있습니다. 3. torch.nn 신경망을 구축하기 위한 다양한 데이터 구조나 레이어 등 정의 예를 들어, RNN, LSTM같은 레이어, ReLU같은 활성화 함수, MSELoss같은 손실 함수 4. torch.optim 확률적 경사 하강법(Stochastic Gradient Descent, SGD)를 중심으로 파라미터 최적화 알고리즘 구현 5. to..