작성
·
254
0
앞선 강의(softmax regression)에서는 train_data = train_data.repeat().shuffle(60000).batch(batch_size) 형태로 구현됐었는데
이후 강의(ann, autoencoder...)에서는 train_data = train_data.shuffle(60000).batch(batch_size) 형태로 구현돼 있습니다.
repeat()의 유무는 중요하지 않은건가요?
답변 1
0
안녕하세요~. 반갑습니다.
.repeat()을 추가할 경우 batch를 무한히 반복해서 추출할 수 있게 됩니다.
반대로 .repeat()을 추가하지 않을 경우 batch를 데이터셋 크기만큼 1번 추출할 수 있습니다. (예를 들어, MNIST 예제의 경우 60,000개의 데이터 추출 가능)
softmax regression 구현에서는 무한히 데이터를 추출할수 있게 한뒤에 인위적으로 1000번의 반복 추출을 통해서 학습을 진행하였고
ann, autoencoder 구현에서는 1번의 epoch에서 전체 데이터를 한번 순회한뒤(60,000개의 데이터 추출) 이 행위를 epoch 횟수만큼 반복해서 학습을 진행하였습니다.
따라서 상황에 따라서 적절하게 repeat()을 사용유무를 고려해서 사용하시면 됩니다.
좋은 하루되세요~.
감사합니다.