본문 바로가기
Python/PyTorch Study

[04] 파이토치 기초( 데이터세트)

by 잉나영 2024. 9. 20.
반응형

 

[데이터세트와 데이터로더]

 

1. 데이터 세트

: 학습에 필요한 데이터 샘플을 정제하고 정답을 저장하는 기능을 제공

: 선형 변환 함수, 오차함수처럼 클래스 형태로 제공되며, 초기화 메서드(__init__), 호출 메서드(__getitem__), 길이 변환 메서드 (__len__)를 재정의하여 활용함

 

(1) 초기화 메서드 (__init__)

: 입력된 데이터의 전처리 과정을 수행하는 메서드

 

(2) 호출 메서드 (__getitem__)

: 학습을 진행할 때 사용되는 하나의 행을 불러오는 과정

 

(3) 길이 변환 메서드 (__len__)

: 학습에 사용된 전체 데이터세트의 개수를 반환

 

2. 데이터 로더

: 데이터세트에 저장된 데이터를 어떠한 방식으로 불러와 활용할 지 정의

 

(1) 배치 크기 (batch_size)

: 학습에 사용되는 데이터의 개수가 매우 많아 한 번의 에폭에서 모든 데이터를 메모리에 올릴 수 없을 때 데이터를 나누는 역학

 

(2) 데이터 순서 변경 (shuffle)

: 데이터 간의 관계가 아닌 데이터의 순서로 학습되는 것을 방지하고자 수행하는 기능

 

(3) 데이터 로드 프로세스 수 (num_workers)

: 데이터를 불러올 때 사용할 프로세스의 개수를 의미

 

-> 파이토치는 데이터세트와 로더를 통해 학습에 필요한 데이터 구조 생성

 

[모델/데이터세트 분리]

 

3. 모델(Model)

: 데이터에 대한 연산을 수행하는 계층을 정의하고, 순방향 연산을 수행

: 클래스 구조를 활용해 복잡한 구조의 인공 신경망을 모듈화해 빠르게 구축하고 관리하기 쉬운 상태로 제작

-> 모델 구현 : 모듈 클래스 활용

 

[모듈 클래스]

: 초기화 메서드 + 순방향 메서드를 재정의하여 활용

 

4. 데이터세트 분리

: 전체 데이터 세트로 나누어 훈련용 데이터/ 테스트 데이터로 분류 (세분화 하면 검증용 데이터까지 분리)

 

(1) 훈련용 데이터

: 모델 학습하는 데 사용되는 데이터 세트

 

(2) 검증용 데이터

: 학습이 완료된 모델을 검증하기 위해 사용되는 데이터 세트

 

(3) 테스트 데이터

: 검증용 데이터를 통해 결정된 성능이 가장 우수한 모델을 최종 테스트하기 위한 목적으로 사용되는 데이터 세트

 

 

[모델 저장 및 불러오기]

5. 모델 저장 및 불러오기

: 파이토치 모델은 직렬화/ 역직렬화를 통해 객체를 저장 및 불러오기 가능

 

모델을 저장하려면 파이썬의 피클(pickle)을 활용해 바이너리 프로토콜로 직렬화 시킴.

 

반응형