작성
·
219
1
trainsets 배치 형태로 구축을 위해 DataLoad 할 때 shuffle을 True로 하고, testloader은 shuffle을 False로 해주는 이유가 뭔가요..?
shuffle이 섞는 다는 것이라면 train/test 모두 shuffle 해주어야 하는거 아닌가욤...? 헷갈려서 질문 드립니다.
답변 1
1
안녕하세요.
좋은 질문입니다!
일반적으로 인공신경망 학습시 확률적 경사하강법(SGD) 기반인 optimizer를 사용합니다.
즉, 학습 시 랜덤 미니 배치를 사용한다는 의미이기 때문에 셔플링을 하게 됩니다.
하지만 평가 시에는 전체 테스트 세트에 대한 정확도나 에러를 계산하기 때문에 셔플링이 의미가 없게 됩니다. 따라서 셔플링을 하셔도 되고 안 하셔도 됩니다. 일반적으로 테스트 데이터의 index를 보존하기 위해 셔플링(인덱스를 섞는 행위)을 하지 않습니다. 물론 테스트 세트를 분할하여 평가하는 경우와 같은 특별한 작업에는 셔플링을 사용할 수도 있습니다.
감사합니다 :)
감사합니다~!