본문 바로가기
Python

[PyTorch] 데이터셋과 데이터로더 (Dataloader and Dataset)

by Henry Cho 2022. 7. 12.
728x90

데이터셋과 데이터 로더 (Dataloader and Dataset) 


포스트 난이도: HOO_Middle

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


# Dataloader and Dataset

파이토치(PyTorch)에서 ML를 통해 데이터를 학습하고 관리하는 과정에서 데이터셋을 관리하는 기능이 필요하다.

파이토치의 데이터셋과 데이터 로더는 학습할 데이터셋부터 산출되는 결과의 데이터셋을 다루는 라이브러리이다.

데이터셋과 데이터로더 기능을 사용함으로써 데이터를 데이터셋으로 관리하는데 매우 용이하다.

한마디로 여러줄로 내릴 명령어를 한 줄로 간략하게 설명해도 컴퓨터가 알아서 알아듣는다.

(그게 라이브러리의 공통적인 장점이긴 하다.)

데이터셋과 데이터로더를 각기 import 하여 사용해야 되지만 사실상 2가지를 같이 사용하는 편이다.

하지만 따로 선언을 한다는 점에서 각기 하는 역할이 다르다.

이번 포스트에서는 데이터셋과 데이터로더가 각기 어떤 기능을 담당하고 어떻게 같이 사용되는지에 대해서 알아보도록 하자.


# Dataset

우선 데이터셋을 먼저 살펴보면, 샘플 데이터와 레이블(label) 또는 정답 데이터를 저장하는 역할을 수행한다.

한마디로 학습(Train) 데이터셋과 학습을 통해 산출된 결과 데이터셋을 다루는 역할을 담당한다는 것이다.

PyTorch Dataset을 통해서 이미지, 텍스트, 오디오 데이터셋을 다룰 수 있다.


# Dataloader

데이터로더는 데이터셋에 접근하는 역할을 수행한다.

데이터 로더를 통해서 데이터셋에 대한 import와 export를 모두 할 수 있다.

또한 데이터셋을 접근한다는 특징에서 iterable 방식을 취하고 있다.

한마디로 데이터를 비교하여 올바른 데이터셋에 접근하는데 이 과정이 반복적인 기능이 포함되다 보니 이것을 순회 가능한 객체라고도 부른다.


# Dataset과 Dataloader에서 사용되는 Parameter

각 라이브러리마다 사용되는 특정 변수(variable)들이 존재한다.

우리는 특정 기능을 변수를 Parameter 또는 매개변수라고 부른다.

Dataset과 Dataloader에서도 사용되는 Parameter들이 존재한다.

대표적인 4개의 매개변수는 root, train, download, transform 등이 있다.

아래의 Parameter들이 Dataset과 Dataloader에서 사용되는 매개변수에 대한 설명이다.

# 학습 또는 테스트 데이터 저장 경로
root

# 학습 또는 테스트 데이터셋 여부 설정
train

# True값인 경우에는 root에 없는 데이터를 인터넷에서 가져옴
download=True

# label, transform, feature 설정
transform || target_transform

 

728x90

댓글