Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- cnn
- 논문리뷰
- DeepNet
- 가상환경
- def validation
- Instruction dataset
- 모델 구조 변경
- 모델 동결
- mPLUG-2
- 강화학습
- mqtt
- Multimodal Large Language Model
- MLLM
- 특정 layer 동결
- 특정 layer 추출
- 논문 작성 요령
- 주식 용어정리
- 파라미터 수
- Video Understanding
- 논문 작성
- KOSMOS-2
- 주식
- pretrained model layer
- 가중치 없이 모델 로드
- vsocde 익스텐션
- Foundation Transformers
- def train
- layer 추출
- 모델 freeze
- 파라미터 수 확인
Archives
- Today
- Total
시작은 미약하였으나 , 그 끝은 창대하리라
[Pytorch 스크래치 코드] Train Test split 본문
✓ Tensorflow 에는 Train Test split 이라는 API가 존재하지만 Pytorch에서는 존재하지 않는다.
✓ 대표적인 데이터셋은 처음부터 Train, Validation, Test 를 주어서 데이터를 분리할 필요가 없다, 하지만 우리가 직접 데이터를 수집해서 학습을 한다면 Train, Validation, Test 을 나눠야한다.
✓ 이를 위해 이번 글에서는 Pytorch 를 사용하여 Train Validaion Test로 나누는 방법을 소개한다.
➢ 주의 사항 : 실험을 동일하게 재현하고 싶으면 random seed 값을 고정하고 돌려야함.
❏ Train, Validation, Test 로 나누기
from torch.utils.data import DataLoader, random_split
# dataset Load
dataset=CustomDataset("./dataset.csv")
# 전체 데이터셋 크기
dataset_size = len(dataset)
# 훈련 데이터셋 크기
train_ratio = 0.6
train_size = int(train_ratio * dataset_size)
# 검증 데이터셋 크기
val_ratio = 0.2
val_size = int(val_ratio * dataset_size)
# 테스트 데이터셋 크기 (나머지 부분)
test_size = dataset_size - train_size - val_size
# 훈련, 검증, 테스트 데이터셋으로 나누기
train_dataset, val_dataset, test_dataset = random_split(dataset, [train_size, val_size, test_size])
# DataLoader를 사용하여 데이터를 배치 단위로 로드
train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
val_loader = DataLoader(val_dataset, batch_size=batch_size, shuffle=False)
test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=False)
❏ Train, Validation 로 나누기 (다른 지정된 Test 셋이 있을때)
from torch.utils.data import DataLoader, random_split
# dataset Load
dataset=CustomDataset("./dataset.csv")
# 전체 데이터셋 크기
dataset_size = len(dataset)
# train,test 분리
val_ratio = 0.2
val_size = int(val_ratio * len(dataset))
train_size = len(dataset) - val_size
train_dataset, val_dataset = random_split(dataset, [train_size, val_size])
# Create dataloaders for train and validation
train_dataloader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
val_dataloader = DataLoader(val_dataset, batch_size=batch_size, shuffle=False)
❏ seed 값 고정: https://put-idea.tistory.com/88
참고하면 좋은 글: https://put-idea.tistory.com/85
'인공지능 > 딥러닝 스크래치 코드' 카테고리의 다른 글
[Pytorch 스크래치 코드] 회귀문제 Train, Validation 함수 (1) | 2023.12.17 |
---|---|
[Pytorch 스크래치 코드] 분류문제 Train, Validation 함수 (0) | 2023.12.16 |
[Pytorch 스크래치 코드] 실험 재현을 위한 Seed 고정 (0) | 2023.12.09 |
[Pytorch 스크래치 코드] Early Stopping (0) | 2023.12.09 |
[Pytorch 스크래치 코드] Custom Dataset, DataLoader (1) | 2023.11.26 |
Comments