강사님! 두 가지 질문 드립니다.

21.05.11 14:25 작성 조회수 98

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된 데이터를 살펴봤을 때 문제가 없다면 말씀하신 방법으로 사용해도 무방할 것으로 보입니다!

감사합니다.

신경식 드림