Purpose
이 Code Snippet은 'Dataset을 OOF 학습을 병렬적으로 수행'하고자 사용합니다.
Dependency Packages
sklearn
torch
Code Example
Ex1) 전체 Data에서 Train과 Validation Index를 저장하는 Code입니다.
from sklearn.model_selection import StratifiedKFold
skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=seed)
folds = []
for t,v in skf.split(datas, labels) :
folds.append({'train':t, 'valid':v})
Ex2) 위 Index를 활용해 OOF 학습을 진행하는 Code입니다.
from torch.utils.data import DataLoader, Dataset, Subset
folds_index = [0,1,2,3,4] # 0 ~ 4
for fold in folds_index :
train_idx, valid_idx = folds[fold]['train'], folds[fold]['valid']
train_sub_set = Subset(dataset, train_idx)
valid_sub_set = Subset(dataset, valid_idx)
train_loader = DataLoader(train_sub_set, batch_size, shuffle=True, num_workers=3)
valid_loader = DataLoader(valid_sub_set, batch_size, shuffle=True, num_workers=3)
...
PS
환경이 다른 Computer나, Colab에서 다중 세션을 활용할 경우에 병렬적으로 Fold를 학습시키는데 유용한 Code입니다.
'Python Code Snippet' 카테고리의 다른 글
[Python Code Snippet] Train시 Progress Bar를 표시하는 Code (0) | 2021.05.21 |
---|---|
[Python Code Snippet] Pickle File 저장하고 불러오는 함수 (0) | 2021.05.21 |
[Python Code Snippet] Average Meter (0) | 2021.05.21 |
[Python Code Snippet] 파이토치 기본설정 (0) | 2021.03.24 |
[Python Code Snippet] 코랩에 구글 드라이브 연결 (0) | 2021.03.24 |