- 결론적으로 mmseg > datasets > builder.py 에서, build_dataloader가 shuffle하고 있음
- 다만, 들어가는 타입의 data는 mmseg > datasets > dataset_wrappers.py의 ConcatDataset에서 wrapping되고 있음
728x90
- build_datset에서 config 에서 넣어준 target domain을 순서대로 _concat_datset을 활용해서 순차적으로 합침
- 이때 source와 target은 각각 config 순서에 따라 합쳐진걸 각각 ConcatDataset 으로 wrapping이 되어있음
- source와 target이 각각 ConcatDataset으로 묶이고 이를 다시 UDADataset으로 wrapping되어 있음
- 이때, config에서 단순 img 및 gt 데이터를 가져와서 mapping 해두게 됨
- 결론적으로 build_dataset이 return하는 것은 UDADataset으로 확인
- 이러한 UDADataset이 tools>train.py 에서 call되어 생성되고 dataset으로써 train_segmentor로 전달되게됨
- UDADataset에서 맵핑되었으므로 serial 하게 합쳐져있는 데이터셋임 (target domain 순서 유지)
- train_segmentor에서 mmseg > datasets > builder.py의 build_dataloader를 호출하여 데이터로더를 생성
- shuffle = True of False
<결론>
- 데이터는 shuffle OK.
- 당연한 건 잘 생각해보기
- 기본적인 걸 간과말기
728x90