[데이터세트와 데이터로더]
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)을 활용해 바이너리 프로토콜로 직렬화 시킴.
'Python > PyTorch Study' 카테고리의 다른 글
[03] 파이토치 기초 (가설, 최적화) (0) | 2024.09.20 |
---|---|
[02] 파이토치 기초 (텐서) (0) | 2024.08.16 |
[01] 인공지능과 방법론 (인공지능, 머신러닝) (0) | 2024.08.16 |