본문 바로가기

AI/PyTorch

PyTorch #파이토치란? #패키지 기본 구성

PyTorch 란?

- 페이스북에서 개발

- 데이터에 대한 딥러닝 분석을 쉽게 할 수 있게 하는 오픈소스 기반 딥러닝 프레임워크

- 딥러닝 프레임워크를 툴로써 제공함으로 손쉽게 프로그래밍 가능

- 파이썬 기반으로 바로 사용가능함으로 개발 과정이 텐서플로우보다 심플

 


파이토치 패키지 기본 구성

1. torch

- 메인 네임스페이스, 텐서 등의 다양한 수학 함수 포함, Numpy와 유사한 구조

 

* Numpy - 다차원 배열을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하는 파이썬 패키지, 데이터 분석을 할 때 Pandas와 함께 자주 사용하는 도구

* 다차원 배열이 왜 필요한가? 데이터는 이미지, 오디오, 텍스트, 숫자 등 다양한 형태와 크기로 존재하는데 이를 컴퓨터가 이해할 수 있도록 데이터를 숫자의 배열로 관리해야 하기 때문

 

 

2. torch.autograd

- 자동 미분을 위한 함수로 구성, 콘텍스트 매니저(자동 미분 on/off를 제어)와 Function (자체 미분 가능 함수 정의)등이 포함

 

* 미분 - "한 점에서의 기울기" 를 의미, 기울기는 두 점을 잇는 직선의 기울기가 기본이지만, 미분은 두 점 사이의 거리가 어마어마하게 가까울 때의 기울기이기 때문에 한 점에서의 기울기로 보임, 다시 말하면 x증가량이 거의 0으로 갈 때의 기울기를 의미한다고 볼 수 있음

 

 

3. torch.nn

- 신경망을 구축하기 위한 다양한 데이터 구조와 레이어 등이 정의, RNN, LSTM, 활성화 함수(ReLU 등), 손실함수(MSELoss 등) 등 포함

 

* RNN - 순환 신경망(recurrent neural network), 순차 데이터를 처리하기 위해 고안된 순환층을 1개 이상 사용한 신경망

* 순차 데이터 - 텍스트나 시계열 데이터와 같이 순서에 의미가 있는 데이터

* LSTM(Long Short-Term Memory) - RNN의 한 종류, 긴 의존 기간을 필요로 하는 학습에 특화

* ReLU - 이미지 분류 모델의 은닉층에 많이 사용, 입력이 양수일 경우 그냥 통과, 음수일 경우는 0으로 만듬

* MSELoss(Mean Squared Error Loss) - 분류(classsification) 모델에서 많이 사용, image간의 차이나 mask간의 차이를 구하기 위해서도 사용

 

 

4. torch.optim

- 확률적 경사 하강법(Stochastic Gradient Descent, SGD)를 중심으로 한 파라미터 최적화 알고리즘이 구현

 

* 확율적 경사 하강법 - 점진적 학습의 대표적 알고리즘, 훈련 세트에서 샘플 하나씩 랜덤으로 꺼내 손실 함수의 경사를 따라 최적의 모델을 찾는 알고리즘

 

 

5. torch.utils.data

- SGD의 반복 연산을 실행할 때 사용되는 미니 배치용 유틸리티 함수 포함

 

* 배치(batch) - 집단, 무리, 한 회분 등의 사전적 정의, 딥러닝에서 배치는 모델의 가중치를 한번 업데이트 시킬 때 사용되는 샘플들의 묶음

* 에포크(epoch) - 중요한 사건, 변화들이 일어난 시대라는 사전적 정의, 딥러닝에서 에포크는 학습의 횟수를 의

 

 

6. torch.onnx

- ONNX(Open Neural Network Exchange)의 포맷으로 모델을 익스포트할 때 사용.

 

* ONNX는 서로 다른 딥 러닝 프레임워크 간에 모델을 공유할 때 사용하는 포맷

 

 


참고:

https://wikidocs.net/book/2788

 

PyTorch로 시작하는 딥 러닝 입문

이 책은 딥 러닝 프레임워크 PyTorch를 사용하여 딥 러닝에 입문하는 것을 목표로 합니다. 이 책은 2019년에 작성된 책으로 비영리적 목적으로 작성되어 출판 ...

wikidocs.net

 

반응형