[10초면 OK] 파이토치 딥러닝 신경망 코딩 권고 스타일 알아보기

[Must Have] 텐초의 파이토치 딥러닝 특강
골든래빗 출판
이종민(텐초) 지음

《Must Have 텐초의 파이토치 딥러닝 특강》에서 재미있는 글을 선별해 연재해보겠습니다.

  1. 파이토치 권고 코딩 스타일
  2. 파이토치로 사인함수 근사해보기
  3. 오차 역전파에서 가중치가 업데이트되는 과정
  4. 트랜스포머 소개

이번에는 파이토치 입문자를 위해 파이토치 코딩 스타일을 소개합니다.

파이토치는 클래스를 사용하도록 권고합니다. 크게 신경망의 동작을 정의하는 모듈 클래스와 데이터를 다루는 데이터셋 클래스가 있습니다. 즉 파이토치를 이용해 딥러닝 신경망을 학습하려면 ① 모듈 클래스를 이용해 신경망을 만들고, ② 데이터셋 클래스를 이용해 데이터를 불러와 학습하면 됩니다.

① 모듈 클래스

파이토치의 딥러닝 신경망은 모두 모듈(nn.Module 클래스)로 구성되어 있습니다. 모듈 클래스의 기본적인 뼈대는 다음과 같습니다.

모듈 클래스는 신경망의 구성요소를 정의하는 __init__( ) 함수와 신경망의 동작을 정의하는 forward( ) 함수로 구성되어 있습니다. 파이토치는 미리 정의해둔 신경망 모듈을 제공합니다. 파이토치가 제공하는 모듈을 불러와 __init__( ) 함수 안에 정의합니다. 다음으로 forward( ) 함수에 신경망의 동작을 정의합니다(__init__( ) 함수에서 정의한 모듈을 연결하거나 필요한 연산 등을 정의합니다).

 

② 데이터셋 클래스

데이터를 호출하는 데이터셋 클래스의 뼈대는 다음과 같습니다.

데이터셋 클래스의 구성요소는 세 가지입니다. 첫 번째로__ init__() 함수는 학습에 사용할 데이터를 불러옵니다. 두 번째로 __len__() 함수는 데이터 개수를 반환합니다. 마지막으로 __getitem__() 함수는 우리가 지정한 i번째 입력 데이터와 정답을 반환합니다.

 

③  딥러닝 학습  뼈대

모듈 클래스와 데이터셋 클래스를 이용한 딥러닝 학습을 진행하는 뼈대는 다음과 같습니다.

파이토치는 학습에 사용할 입력 데이터와 정답을 불러오는 데이터로더를 제공합니다. 데이터로더는 데이터셋 클래스를 입력으로 받아 학습에 필요한 양 만큼의 데이터를 불러오는 역할을 수행합니다. 이 데이터로더로부터 데이터와 정답을 불러와 신경망의 예측값을 계산합니다(여기서 신경망은 앞서 말씀드린 파이토치 모듈입니다). ❶ 예측값을 계산했다면 ❷ 손실 함수를 이용해 신경망의 오차를 계산합니다. ❸ 파이토치의 backward( ) 메서드를 이용해 오차를 역전파한 다음, ➍ step( ) 메서드를 이용해 신경망의 가중치를 수정합니다.

 

이상으로 파이토치 권고 코딩 스타일을 간단히 알아봤습니다. 간단한 구조지만 알아두면 신경망을 만들어 학습할 때 반복할 수 있는 유용한 정보니까 꼭 익혀두기 바랍니다.

이종민(텐초) 

일본 JAIST 정보과학 석사. 동경의 딥러닝 엔지니어로 Ghelia에서 B2B 인공지능 솔루션을 개발 중이다. 딥러닝의 유용함을 널리 알리고자 유튜버로  활동하고 글을 쓰고 책을 집필합니다. 쉬운 그림을 이용해 10초만에 핵심을 전달하자는 의미에서 닉네임을 텐초로 지어 활동하고 있습니다.

– SNS : www.youtube.com/c/텐초

Leave a Reply

©2020 GoldenRabbit. All rights reserved.
상호명 : 골든래빗 주식회사
(04051) 서울특별시 마포구 양화로 186, 5층 512호, 514호 (동교동, LC타워)
TEL : 0505-398-0505 / FAX : 0505-537-0505
대표이사 : 최현우
사업자등록번호 : 475-87-01581
통신판매업신고 : 2023-서울마포-2391호
master@goldenrabbit.co.kr
개인정보처리방침
배송/반품/환불/교환 안내