본문 바로가기

AI73

[PyTorchZeroToAll] 8. PyTorch DataLoader 이번 시간에는 우리가 사용할 큰 데이터를 더 빠르게 로드하는 법에 대해 알아보도록 하겠다. 저번 시간에는 위와 같이 모든 데이터를 로드한 뒤에 각각을 ,로 구분해서 x_data와 y_data로 하나하나 구분했다. 훈련 단계에서도 모든 데이터들을 모델에 하나하나 모두 넣어서 예측값을 얻었다. 위의 예시에는 데이터가 700여개였기 때문에 크기가 작아서 모든 데이터를 하나하나 처리하기 어렵지 않았다. 하지만 만약 데이터의 크기가 매우 커지면 이런 식으로 하나하나 처리하기 어려워질 것이고 효율적이지 않다. 그래서 우리는 batch라는, 데이터를 일정한 크기로 묶어서 처리할 것이다. epoch, batch의 크기, 반복 횟수에 대한 정의는 위와 같다. epoch는 전체 데이터를 다루지만, batch는 일정한 크기.. 2020. 1. 27.
[PyTorchZeroToAll] 7. Wide and Deep 저번 시간에는 linear model로 logistic regression을 구현했다. 위의 예시는 하나의 입력을 받아서 하나의 출력을 내는 결과를 보여주고 있다. 하나의 입력밖에 안 받기 때문에 forward하기에 충분하지 않을 수 있다. 그래서 더 좋은 결과를 얻기 위해서 여러 개의 입력을 준다고 해보자. 이번에는경험이라는 입력까지 넣어보자. 학점과 경험이라는 두 개의 입력을 받아서 과연 홍콩과기대에 합격할 수 있을지 예측하는 모델을 만드는 것이다. 이것을 해결하기 위해서는 행렬의 곱셈 연산에 대해서 알아야한다. 위와 같이 일반화하면 입력이 여러 개여도 곱셈 연산을 수행할 수 있다. 우리의 경우에는 입력이 2개이고, 출력이 한 개이기 때문에 위와 같이 코드를 작성하면 된다. 그래서 넓게, Wide라는.. 2020. 1. 27.
[PyTorchZeroToAll] 6. Logistic Regression 저번 시간에는 linear regression을 pytorch로 구현해보았다. 이번 시간에는 logistic regression을 pytorch로 구현해보도록 하겠다. linear regression의 예에서는 실수를 입력으로 받고, 실수를 출력으로 내보냈다. 그런데 실생활에서는 0 or 1으로만 나뉘는 경우도 많이 있다. n 시간 공부했을 때 시험을 통과할지 떨어질지, 이 GPA, GRE 성적으로 홍콩과기대의 박사 과정에 통과할 수 있을지 아닐지, 일본과의 축구 경기에서 이길지 질지, 마음에 드는 이성에게 프로포즈할지 아닐지 이런 예들이 해당된다. 그렇다면 이런 0 또는 1의 결과는 어떤 입력과 출력을 우리의 모델에 주어야할까? 위의 식에 해당하는 시그모이드 함수를 사용한다. 입력이 커질수록 출력이 1.. 2020. 1. 23.
[PyTorchZeroToAll] 5. Linear Regression in the PyTorch way 이번 시간에는 파이토치를 사용하여 선형 회귀를 구현해보도록 하겠다. 파이토치를 사용하는 법은 위와 같다. 먼저 모델을 클래스와 Variable을 사용해서 만든다. 그 다음 손실함수를 정의하고, 최적화한다. 세번째는 forward, backward, update과정을 거쳐 모델을 제대로 학습한다. 먼저 torch를 import한 뒤 Variable을 import한다. 그 후 입력 데이터와 정답 데이터들을 정의한다. 그 다음 위와 같이 model class를 만든다. class에 반드시 들어가야할 함수는 모델을 초기화하는 함수와 forward를 수행하는 함수이다. 초기화함수 __init__에서는 super을 통해 호출하고, 입력과 출력의 개수를 결정해준다. forward함수는 x를 입력으로 받아서 y를 출력.. 2020. 1. 22.