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입니다.

+ Recent posts