728x90
반응형
https://stackoverflow.com/questions/47432168/taking-subsets-of-a-pytorch-dataset
Epoch에 따라 홀수, 짝수에 맞춰서 DataLoader 내 Random Sampling을 수행하며, 전체 데이터를 절반으로 나눈뒤, 짝수, 홀수 Index에 맞춰서 학습시키게끔 수정
data_loader = build_data_loader(cfg.data.train)
# for odd, even sampling
indicies_odds = list(range(1, len(data_loader), 2))
indicies_evens = list(range(0, len(data_loader), 2))
odd_sampler = SubsetRandomSampler(indicies_odds)
evens_sampler = SubsetRandomSampler(indicies_evens)
# Odd Data loader
train_odds_loader = torch.utils.data.DataLoader(
data_loader,
batch_size=cfg.data.batch_size,
sampler = odd_sampler,
num_workers=8,
drop_last=True,
pin_memory=True
)
# Even Data loader
train_evens_loader = torch.utils.data.DataLoader(
data_loader,
batch_size=cfg.data.batch_size,
sampler = evens_sampler,
num_workers=8,
drop_last=True,
pin_memory=True
)
밑에 Train
for epoch in range(start_epoch, cfg.train_cfg.epoch):
print('\nEpoch: [%d | %d]' % (epoch + 1, cfg.train_cfg.epoch))
if epoch%2 == 0:
epoch_avg_rec_acc, writer = train(train_evens_loader, model, optimizer, epoch, start_iter, cfg, train_logger, writer)
elif epoch%2 == 1:
epoch_avg_rec_acc, writer = train(train_odds_loader, model, optimizer, epoch, start_iter, cfg, train_logger, writer)
lr_scheduler.step()
728x90
반응형
'사소한 Tip . 오류 해결법' 카테고리의 다른 글
CMD출력 Warning 삭제(in.Tensorflow) (0) | 2021.11.24 |
---|---|
RuntimeError: OrderedDict mutated during iteration (0) | 2021.11.17 |
Ubuntu, Command로 하위 파일, 하위 디렉토리 개수 세기/ 여러 폴더 내 파일 개수 count (0) | 2021.11.03 |
jupyter notebook dashboard - voila (0) | 2021.11.01 |
pytorch batchnormalization freeze (0) | 2021.10.15 |