본문 바로가기

[모두를 위한 딥러닝/시즌2] Lab-04-2 Loading Data

Lab-04-2 Loading Data

 

다음은 모두를 위한 딥러닝 시즌 2의 Lab-04-2 Loading Data를 학습하고 요약정리한 내용입니다. 강의 내용을 기반으로 요약하되, 보충 설명이 필요한 경우 부스트코스 위키독스를 참고했습니다.

학습 목표

미니 배치 경사 하강법(Minibatch Gradient descent)을 배우고 Dataset & DataLoader 사용법에 대해 알아본다.

핵심 키워드

미니 배치 경사 하강법(Minibatch Gradient descent), Dataset, DataLoader

1. "Mini Batch" Gradient Descent 이론


 • 미니 배치(Mini Batch): 전체 데이터를 더 작은 단위로 나눈 해당 단위를 의미
 • 배치 경사 하강법(Batch Gradient descent): '전체' 데이터에 대해서 한 번에 경사 하강법을 수행하는 방법
 • 미니 배치 경사 하강법(Minibatch Gradient descent): '미니 배치' 단위로 경사 하강법을 수행하는 방법

전체 데이터로 경사 하강법을 수행할 경우 연산량도 많고 훈련 속도도 느리기 때문에 미니 배치 단위로 수행

2. Pytorch Dataset and DataLoader 사용법


파이토치에서는 데이터셋을 좀 더 쉽게 다룰 수 있도록 유용한 도구로서 torch.utils.data.Dataset과 torch.utils.data.DataLoader를 제공한다. 이를 사용하면 미니 배치 학습, 데이터 셔플(shuffle), 병렬 처리까지 간단히 수행할 수 있다. 기본적인 사용 방법은 Dataset을 정의하고, 이를 DataLoader에 전달하는 것이다.

https://wikidocs.net/57165

 • torch.utils.data.Dataset을 상속하여 커스텀 데이터셋(Custom Dataset) 생성

 • 앞서 정의한 dataset을 torch.utils.data.DataLoader에 전달

 • 배치 크기는 보통 2의 제곱수를 사용

∵CPU와 GPU의 메모리가 2의 배수이므로 배치 크기가 2의 제곱수일 경우에 데이터 송수신의 효율을 높일 수 있음

 • shuffle=True로 해주어 에폭마다 데이터 순서를 바꾸기 → 문제 순서 암기 방지

https://wikidocs.net/55580

 • Iteration: 한 epoch당 minibatch 개수, 즉 한 번의 에폭 내에서 이루어지는 매개변수인 가중치 W와 b의 업데이트 횟수