작성
·
151
0
utility Functions - 3 More Utils
강의의 load_pocessing_mnist 함수 def 부분에서 질문이 있습니다.
1. tfds.load를 통해 dataset을 받아오고 property에서 split = ['train', 'test']을 설정하면
(train_validation_ds, test_ds) 각각에 저장되는 비율은 어느정도인가요?
ex) 5:5 또는 7:3
2.
line 34~36
train_ds = train_validation_ds.take(n_train)
remaining_ds = train_validation_ds.skip(n_train)
validation_ds = remaining_ds.take(n_validation)
부분에서
take() 는 train_validation_ds 안에서 n_train의 개수만큼 return하는
skip() 은 train_validation_ds 안의 (전체 개수 - n_train) 개수만큼 return하는
함수로 알고 있었습니다. 제가 배운 것이 맞다면
remaining_ds = train_validation_ds.skip(n_train) 이거는
validation_ds = remaining_ds.take(n_validation) 이거와 같지 않나요?
ex) if n_train == 45000, n_validation == 15000 :
num examples of remaining_ds == 15000
then, validation_ds = remaining_ds.take(n_validation)
validation_ds == remaining_ds ???
강사님의 여러 강의를 보고 열공하고 있습니다. 항상 감사합니다.
답변 1
0
안녕하세요! 질문하신 내용에 대한 답변입니다~
1. tfds.load에서 split을 이용하면, 정해진 비율로 train, validation ds가 return되는 것이 아니라 ds가 가지고 있는 개수에 따라 달라집니다! MNIST같은 경우 ds 자체적으로 train이 60000, test가 10000개이므로 이 값으로 return됩니다!
2. 이 부분은 저도 직접 확인해봐야겠는데, 만약 return된 데이터를 살펴봤을 때 문제가 없다면 말씀하신 방법으로 사용해도 무방할 것으로 보입니다!
감사합니다.
신경식 드림