Deep Learning with PyTorch/PyTorch Basic 4

[PyTorch Basic] 파이썬 클래스(class)

1. 함수(function)과 클래스(Class)의 차이 우선 함수와 클래스의 차이를 이해하기 위해 덧셈을 지속적으로 수행할 수 있는 도구를 함수와 클래스로 각각 만든다. 1. 함수(function)로 덧셈기 구현 우선 add 함수를 파이썬으로 구현하고 result라는 전역 변수를 선언한다. In [1]: result = 0 In [2]: def add(num): global result result += num return result In [3]: print(add(3)) print(add(4)) 3 7 2. 함수(function)로 두 개의 덧셈기 구현 이번에는 독립적인 두 개의 덧셈기를 만든다. In [4]: result1 = 0 result2 = 0 def add1(num): global res..

[PyTorch Basic] 텐서 조작하기(Tensor Manipulation) 2

5) 뷰(View) - 원소의 수를 유지하면서 텐서의 크기 변경. 매우 중요 파이토치 텐서의 뷰(View)는 Numpy에서의 reshape와 같은 역할을 한다. 텐서의 크기(Shape)를 변경해주는 역할을 한다. 실습을 위해 우선 임의로 다음과 같이 3차원 텐서를 만든다. In [6]: import numpy as np import torch t = np.array([[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]) ft = torch.FloatTensor(t) In [7]: print(ft.shape) torch.Size([2, 2, 3]) 현재 위 텐서의 크기는 (2, 2, 3)이다. 5-1) 3차원 텐서에서 2차원 텐서로 변경 이제 ft 텐서를 view를 사..

[PyTorch Basic] 텐서 조작하기(Tensor Manipulation) 1

1. Vector, Matrix and Tensor 1) 벡터, 행렬, 텐서 그림으로 이해하기 딥러닝을 하게 되면 다루게 되는 가장 기본적인 단위는 벡터, 행렬, 텐서다. 차원이 없는 값을 스칼라, 1차원으로 구성된 값을 우리는 벡터라고 한다. 2차원으로 구성된 값을 행렬(Matrix)라고 하며 3차원이 되면 텐서(tensor)라고 부른다. 4차원 이상부터는 3차원의 텐서를 위로 쌓아 올린 모습, 5차원은 그 4차원을 다시 옆으로 확장한 모습, 6차원은 5차원을 뒤로 확장한 모습으로 볼 수 있다. 2) PyTorch Tensor Shape Convention 딥러닝을 할 때 다루고 있는 행렬 또는 텐서의 크기를 고려하는 것은 항상 중요하다. 행렬과 텐서의 크기를 표현할 때 다음과 같은 방법으로 표기한다...

[PyTorch Basic] 파이토치 패키지의 기본 구성

1. torch 메인 네임스페이스며 텐서 등의 다양한 수학 함수가 포함되어있고 Numpy와 유사한 구조를 가진다. 2. torch.autograd 자동 미분을 위한 함수들이 포함되어있고 자동 미분을 제어하는 contact 매니저나 자체 미분 가능 함수를 정의할 때 사용하는 기반 클래스 'Function' 등이 포함되어있다. 3. torch.nn 신경망 구축을 위한 다양한 데이터 구조나 레이어 등이 정의되어있다. 예를 들어 RNN, LSTM과 같은 Layer, ReLU와 같은 활성화 함수, MSELoss와 같은 손실 함수들이 있다. 4. torch.optim 확률적 경사 하강법(Stochastic Gradient Descent, SGD)를 중심으로 한 파라미터 최적화 알고리즘이 구현되어있다. 5. torc..