• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

mmdetection config 질문드립니다.

21.09.12 22:20 작성 조회수 1.12k

0

data = dict(
samples_per_gpu=2,
workers_per_gpu=2,
train=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_train2017.json',
img_prefix=data_root + 'train2017/',
pipeline=train_pipeline),

 

안녕하세요. 선생님 
config 관련 정보를 보다가 samples_per_gpu 와 workers_per_gpu에 대해서 
알고 싶어 질문드립니다.

GPU 하나를 쓴다고 하였을 때,
samples_per_gpu의 경우는 batch_size와 동일해진다고 해석을 하였는데...
이 해석이 맞는지 헷갈려서 문의드립니다.

그리고 workers_per_gpu 부분은 정확히 무슨 의미인지, 그리고 숫자 증가에 따라 어떤 차이가 발생하고
어떻게 선정을 하는 것인지 궁금합니다.

단순 구글 검색해서 nums_worker 같은 경우, cpu에서 gpu로 데이터를 넘기는데 
cpu 코어를 얼마나 할당해서 gpu로 데이터를 넘길 것인가 부분이라고 나왔는데
이 내용이 config의 workers_per_gpu랑은 다른 내용인 것 같아 질문드립니다.

항상 좋은 강의 감사드립니다.  

답변 1

답변을 작성해보세요.

1

안녕하십니까, 

1. 네, samples_per_gpu는 GPU 카드 한장당 batch_size를 의미합니다. 

samples_per_gpu = 8 이고 GPU 카드가 2장이면 MMDetection은 batch size로 2*8=16을 설정합니다. 

2. workers_per_gpu는 pytorch의 DataLoader와 연관된 파라미터 입니다. pytorch는 DataLoader를 통해서 CPU의 Data를 GPU로 넘기는데, 이때 병렬 프로세스를 몇개를 띄울 것인가(즉 몇개의 CPU Core 병렬로 사용할 것인가)를 설정하는 파라미터 입니다. DataLoader의 num_workers와 동일 설정입니다. 

감사합니다.