2주차 회고 및 요약_1

Roy·2022년 9월 30일
0

부스트캠프

목록 보기
2/3

주간 학습 정리 목표

  1. 주간 학습 정리의 목표는 한 주간 공부했던 내용을 까먹지 않기 위함
  2. 주차별 내용에 있어 좋았던 부분과 어려웠던 부분을 위주로 정리하기
  3. 최대한 강의에서 나의 생각 넣어 이해하기

Pytorch

💊Overview : 이번 주차는 Pytorch에 대한 전반적인 이해와 사용방법에 대해 배웠고 저번 주차 AI&Math와 Python강의와 연결지으며 이해하니 도움이 많이 되었습니다.

💡왜 Pytorch를 배우는가

Origin_link : https://www.assemblyai.com/blog/pytorch-vs-tensorflow-in-2022/

효과적인 프레임워크를 정하는 것은 중요합니다. 딥러닝 자체가 같고 있는 많은 확장성으로 다양한 분야 다양한 직군에서 프레임워크를 사용하게되니 나의 상황도 중요하고 프레임워크 마다 구현 방식이 다르기 때문에 이를 먼저 이해하고 배우는 것을 권장합니다.
그렇다면 딥러닝의 대표적인 프레임워크인 Tensorflow와 Pytorch에 대한 비교를 통해 왜 Pytorch를 배워야 하는지 정리해보겟습니다.

TensorflowPytorch
주 사용자엔지니어연구자
작동 방식Define and RunDefine by Run
*** 주 사용자의 경우 프레임워크 비교를 위해서는 좋은 안목이 될 수 있다고 생각해 넣었습니다. 따라서 주 사용자를 위와 같이 단정 지을 순 없다는 걸 명시해드립니다!

Pytorch의 작동 방식인 Define by Run이 많은 인정을 받고 성능이 좋다는 평을 많이 받아 각광을 받고 있습니다. 또한 아래 3가지의 장점으로 입문자 입장에서 Tensorflow보다 편리하다는 평도 많습니다. (물론 저는 어렵네요..)

🥰 Pytorch 장점

  1. Pythonic code : 파이썬에서는 PEP(Python Enhancement Proposal)을 권장하는데 Pytorch가 이러한 점을 따른다.
  2. Numpy 객체와 크게 유사 : 프로젝트를 하다보면 Numpy를 자주 사용하게 되는데 Numpy와 거의 동일한 함수를 Tensor객체에서 지원하기 때문에 이러한 점은 Test case생성 또는 데이터 연산 과정에서 큰 장점이다.
  3. 자동미분 지원(AutoGrad) : pytorch의 tensor객체가 자동미분을 지원하면서 빠른 성능과 효율적인 메모리 할당으로 성능이 좋다.

💡Define by Run의 장점

  • Define by Run을 이해하기 위해서는 프로그램 상 Define과 Run에 대해 이해하는 것이 중요하다고 생각합니다.
  • 또한 Tensorflow는 Define and Run방식이라 이 두 방식의 차이도 집중해서 읽어 주세요

    What is Define,Run

    대부분의 기존 딥 러닝 프레임워크는 "정의 및 실행(Define and Run)" 방식을 기반으로 합니다. 즉, 먼저 네트워크를 정의하고 고정한 다음 사용자가 주기적으로 미니 배치의 훈련 데이터를 네트워크에 공급합니다. 네트워크는 순방향/역방향 계산 전에 정적으로 정의되기 때문에 모든 논리는 데이터로 네트워크 아키텍처에 포함되어야 합니다. 결과적으로 이러한 시스템(예: Caffe)에서 네트워크 아키텍처를 정의하는 것은 선언적 접근 방식을 따릅니다. 여전히 명령형 언어(예: torch.nn, Theano 기반 프레임워크 및 TensorFlow)를 사용하여 이러한 정적 네트워크 정의를 생성할 수 있습니다.

    Pytorch는

    데이터를 계산하는 과정에서 동적으로 계산 그래프가 구성됩니다.(Define and Run: 계산그래프를 먼저 구성한 다음에 그래프를 따라 계산 과정이 이루어짐)계산 그래프를 동적으로 구성할 수 있으므로 디벙깅이 쉽지만 계산 그래프를 구성하는 비용이 크다. 어떤 데이터를 다루냐에 따라 두 가지 방법 중 하나를 적정히 선택하면서 하면된다. 대부분 딥러닝 라이브러리는 Define and Run 방식을 채택하고 있으나 체이너와 파이토치는 Define by Run이다.

👩🏻‍💻 내가 Pytorch를 선택한 이유

  • Hugging Face에서는 대부분이 Pytorch이더라

    저는 NLP를 전공으로 트랙을 밟으며 관심을 키워가고 있습니다. NLP 분야 특성상 거대 언어모델을 가져와 fine tuning하게 되는 경우가 많은데 Hugging Face에서는 transformer기반 많은 거대 언어 모델을 라이브러리 형태로 지원 합니다.

💡정리

Pytorch와 Tensorflow의 비교를 통해 Pytorch선택과 동작 방식에 대해 이해해봤는데요. 내용이 좀 길어져 다음 포스팅에서는 Pytorch 간단한 특징과 Model 개발의 구성을 요약해보겠습니다.

profile
반갑습니다. 좋은 정보 공유하겠습니다.

0개의 댓글