20220923

강태공·2022년 9월 24일
0

Dynamic Graph vs. Static Graph

-PyTorch

  • 각 에포크의 전파시마다 계산 그래프 재정의 가능(동적)
    - 학습 도중에도 은닉계층 추가/삭제 가능(업데이트 바로 적용 가능함)
  • numpy와 호환성 높음(메모리공유)
  • 파편화(버전)가 상대적으로 작음

-Tensorflow

  • 한 번 계산 그래프를 정의하면 값만 바꿔서 실행하는 것만 가능(정적)
  • 템플릿 스타일

PyTorch 패키지(모듈)

-torch
강력한 GPU 가속지원 기능을 갖춘 Numpy와 같은 모듈

-torch.autograd(텐서는 fit에 전파역전파가 자동이지만, 파이토치는 편미분 하는 함수 코드로)
-자동미분(Auto Gradient)
-레코더는 수행한 작업을 기록한 다음 거꾸로 재생하여 경사를 계산하는 모듈

-torch.optim

  • 최적화(Optimization)
  • 신경 네트워크를 구축하는 데 사용되는 다양한 최적화 알고리즘을 구현하는 모듈

-torch.nn

  • 저수준 신경망 설계에 유용
  • 로우레벨 = 하나하나 다 일일히

-torch.legacy(.nn/optim)
이전 버전과의 호환성을 위해 Torch에서 이식된 레거시 코드

-torch.utils
데이터셋 관리 편의를 위해 DataLoader, Trainer 및 기타 유틸리티 기능

-torch.multiprocessing
파이썬의 멀티 프로세싱을 지원하지만, Torch Tensors의 메모리 공유 기능 제공.
데이터 로딩 및 호그 워트 학습(훈련)에 유용

PyTorch 기본예제

!pip3 install torch
import torch

print(torch._ _version_ _)

torch.cuda.get_device_name(0)
torch.cuda.is_available()

0개의 댓글