gpu 분산처리를 이용하게 된다면 배치크기가 8이라 했을때 gpu가 8개라면 8x8만큼의 배치크기가 된다고 알고있는데 이런경우에 배치정규화를 사용한다면 각 gpu당 배치크기는 8이니깐 배치정규화가 작동할때 배치크기는 64가 아닌8에서 동작하는건가요?
또 혼합정밀도로 학습을 시킬때 가끔 손실률이 nan값이 되던데 이 이유에 대해서 궁금합니다. 코드는 700줄이 넘어가는데다가 연구실에서 진행중인 프로젝트라 공개가 힘들것같아서 최대한 코드 볼 필요가 없는선에서 질문드렸어요
DataParallel은 그냥 미니 배치를 나눠서 처리하는 거라 사이즈가 8이면 그냥 미니배치 사이즈는 8, 배치정규화 자체가 미니배치마다 정규화 하는거니까 배치정규화도 사이즈 8씩 정규화되겠지? nan 값은 그냥 코드 잘못짠거인데 뭘 어쩌냐 혼합정밀도라고 했으니 가장 쉽게 생각되는건 타입 불일치겠네
혼합정밀도 쓴다고 모델 성능에 큰 문제가 되진 않겠죠? 일단 생성기 판별기 부분은float32로 연산시켰더니 해결되긴했습니다.
이미지 생성모델이다보니깐 혹시 학습이 잘 안되면 어쩌지 싶어서 못쓰고있었거든요
그냥 16비트 쓰는 것보다 낫다는 정도지 좀 차이는 날 수 있지, 상관 없을지는 니가 하는 프로젝트에 따라 다른거고