파이토치 : 딥러닝 프레임워크
루아 언어로 개발된 토치를 페이스북에서 파이썬 버전으로 내놓은 것
- 넘파이를 대체하면서 GPU를 사용한 연산이 필요한 경우
- 최대한의 유연성과 속도를 제공하는 딥러닝 연구 플랫폼이 필요한 경우
파이토치 특징 및 장점
GPU에서 텐서 조작 및 동적 신경망 구축이 가능한 프레임워크, 직관적인 인터페이스
GPU
CUDA, cuDNN과 같은 API를 통해 GPU를 연산에 사용 가능함
병렬 연산에서 GPU 속도가 빨라서 딥러닝 GPU 사용은 필수
텐서
파이토치 데이터의 형태
단일 데이터 형식의 자료들의 다차원 행렬
텐서에 간단한 명령어(변수에 .cuda())를 추가해서 GPU로 연산 수행
동적 신경망
훈련 반복때마다 네트워크 변경이 가능한 신경망
벡터, 행렬, 텐서
벡터 : 인공지능에서 데이터는 벡터로 표현됨, 1차원 배열 형태
행렬 : 행과 열로 표현되는 2차원 배열 형태
- 데이터 레코드를 벡터 단독으로 나타낼 땐 하나의 열로 표기됨
텐서 : 3차원 이상의 배열 형태
- 파이토치에서 텐서 표현할 때는 torch.tensor()를 사용함
import torch
torch.tensor([[1., -1.], [1., -1.]])
axis 0이 행, axis 1이 열, axis 2가 채널을 의미함
파이토치 아키텍처
: 파이토치 API - 파이토치 엔진(다차원 텐서 및 자동 미분 처리) - (텐서에 대한) 연산 처리
파이토치 API
사용자 인터페이스 제공
torch: GPU를 지원하는 텐서 패키지
torch.autograd: 자동 미분 패키지 -> 다양한 신경망 적용 가능
torch.nn : 신경망 구축 및 훈련 패키지-> 손쉽게 신경망 구축 및 학습 가능
torch.multiprocessing : 파이썬 멀티프로세싱 패키지
torch.utils : DataLoader 및 기타 유틸리티 제공
연산 처리
C, CUDA 패키지는 계산 수행함.
텐서 메모리 저장
텐서는 메모리에 저장할 때는 1차 배열 형태여야만 메모리에 저장이 가능
변환된 1차원 배열을 storage라고 함
오프셋(offset) : 텐서에서 첫번째 요소가 스토리지에 저장된 인덱스
스트라이드(stride) : 다음 요소를 얻기 위해 건너뛰기(skip)가 필요한 스토리지 요소 개수
텐서를 구분하는 용도로 오프셋과 스트라이드를 사용함. 다른형태를 가지더라도 스토리지 값은 가질 수 있음.
'Pytorch' 카테고리의 다른 글
torch.nn과 torch.nn.functional (0) | 2023.09.11 |
---|---|
ResNet Image Feature Extraction (0) | 2023.09.04 |
파이토치 모델 정의 (0) | 2022.04.30 |
파이토치 기초 문법 (0) | 2022.04.28 |
머신러닝과 딥러닝 (0) | 2022.04.26 |