pytorch 공식 홈페이지로, 튜토리얼로 정리도 잘 되어 있으니 참고하시길 바랍니다.
> pytorch(파이토치)란?
지금 딥러닝을 활용하고 있거나 활용할 계획이 있는 엔지니어 모두에게 주목받고 있는 딥러닝 라이브러리인 파이토치는 본래 머신러닝 라이브러리인 "Torch"를 파이썬으로 포팅한 것으로 2012년부터 개발이 시작됐다. 같은 딥러닝 라이브러리인 체이너(Chainer)의 특징인 "Define by Run"을 설계 사상에 받아들인 후 2016년 후반부터 급속도로 사용자가 증가했고 2017년 1월에 오픈소스로 공개했다.
파이토치는 페이스북과 뉴욕대학교에서 주도적으로 개발하고 있으며, 트위터와 NVIDIA도 개발에 참여하고 있다. 2017년 9월에는 페이스북과 마이크로소프트가 공동으로 개발한 Open Neural Network Exchange(ONNX)가 발표됬다. ONNX를 사용하면 파이토치와 Caffe2로 학습한 모형을 서로 호환되도록 변환할 수 있다.
>pytorch의 특징
1. Define by Run 설계 사상을 채택함
데이터를 계산하는 과정에서 동적으로 계산 그래프가 구성된다
(Define and Run: 계산그래프를 먼저 구성한 다음에 그래프를 따라 계산 과정이 이루어짐)
계산 그래프를 동적으로 구성할 수 있으므로 디벙깅이 쉽지만 계산 그래프를 구성하는 비용이 크다. 어떤 데이터를 다루냐에 따라 두 가지 방법 중 하나를 적정히 선택하면서 하면된다. 대부분 딥러닝 라이브러리는 Define and Run 방식을 채택하고 있으나 체이너와 파이토치는 Define by Run이다.
2. "파이썬스러운" 구현이 가능함
파이썬스러운 코드란 파이썬 문법을 잘 활용한 간결하고 읽기 쉬운 코드를 말한다. 파이토치에서 파이썬스러운 코드가 나오기 쉬운 이유는 Numpy 배열과 텐서 간의 변환이 쉽다는 점과 직관적인 코드로 계산 그래프를 구성할 수 있다는 점이 크다.
>numpy는 파이썬용 수치 계산 라이브러리다. 배열이나 다차원 배열을 효율적으로 다루는 함수를 주로 제공한다. 파이토치에서 제공하는 함수를 사용하면 딱 한줄로 numpy 배열을 텐서로 변환할 수 있다.
3. 자동미분 기눙
자동미분(Automatic Differentiation, AD)이란 말 그대로 자동으로 미분을 해주는 기능이다. 오차가 최소가 되게 하는 파라미터를 찾을 때 사용한다.
>Pytorch의 구성요소
1. torch : 텐서를 생성하는 라이브러리
2. torch.autograd : 자동미분 기능을 제공하는 라이브러리
3. torch.nn : 신경망을 생성하는 라이브러리
4. torch.multiprocessing :병렬처리 기능을 제공하는 라이브러리
5. torch.utils : 데이터 조작 등 유틸리티 기능 제공
6. torch.legacy(./nn/.optim) : torch로부터 포팅해온 코드
이 블로그의 설명은
"PyTorch를 활용한 머신러닝, 딥러닝 철저입문 -코이즈미 사토시 지음, 심효섭 옮김, 위키북스" 책을 참고하였습니다.
'컴퓨터쟁이 > Machine Learning' 카테고리의 다른 글
실제 데이터로 작업하기 (0) | 2021.01.18 |
---|---|
요즘은 pytorch를 쓴다고 해서 이번엔 pytorch 설치 방법 (0) | 2019.02.27 |
본격적 환경설정 (0) | 2018.07.30 |
서버 환경설정부터 시작하기 (0) | 2018.07.30 |
용어를 잘 정리하자 (0) | 2018.01.23 |