본문 바로가기
개발공부/AI와 데이터

Pytorch 공부하기-1. Pytorch란?

by 무황이 2025. 3. 14.

1. Pytorch란?

Facebook(현재 Meta)에서 개발한 오픈소스 딥러닝 프레임워크로, 파이썬(Python) 기반의 텐서 연산 및 자동 미분 기능을 제공하여 딥러닝 및 머신러닝을 쉽게 구축하고 학습 할 수 있도록 지원한다

 

Pytorch의 주요 특징

1️⃣ 동적 계산 그래프 (Dynamic Computation Graph)

  • Tensorflow의 초기 버전과 달리, Pytorch는 동적 계산 그래프를 사용하여 실행 중에 네트워크 구조를 변경할 수 있다
  • 유연한 모델 구현과 디버깅이 쉽다

2️⃣ 강력한 GPU 가속 지원

  • CUDA를 활용하여 GPU에서 텐서 연산을 빠르게 수행할 수 있다
  • .to(device) 메서드를 사용하여 손쉽게 CPU/GPU 간 이동이 가능하다

3️⃣ NumPy와 유사한 텐서(Tensor) 연산 지원

  • torch.Tensor를 사용하여 행렬 연산이 가능하다
  • 또한, GPU 가속을 활요한 빠른 연산이 가능하며, Numpy와 호환이 된다

4️⃣ 자동 미분(Autograd)

  • torch.autograd를 이용하여 역전파(Backpropagation) 및 그래디언트 계산 자동화
  • .requires_grad = True 설정 시, 텐서의 모든 연산이 기록됨

2. Pytorch vs Keras

Pytorch

  • PyTorch는 실행 중에 네트워크 구조를 변경할 있는 동적 계산 그래프를 사용하기 때문에 RNN,Reinforcement Learning 같은 구조가 자유롭다
  • 모델 구조를 직접 구현할 수 있어 커스터마이징이 쉽다

 Keras

  • 기본적으로 정적 계산 그래프 사용하지만 TensorFlow 2.0 이후 Eager Execution으로 동적 계산이 가능하다
  • Keras는 사용자 정의층을 만들 수 있지만 상대적으로 복잡하다

따라서, Pytorch가 개발에 더 적합하기 때문에 현업에서는 Pytorch를 더 많이 쓴다