데이터셋을 메모리로 로딩하고, 데이터가 많으면 수행 시간이 오래 걸리기 때문에 정확도가 조금 낮아지더라도 속도를 위해 데이터셋 크기를 제한하겠습니다(컴퓨팅 성능이 좋다면 이 과정은 생략해도 좋습니다).4
코드 10-29 데이터셋 크기 조정
num_examples = 30000 ------ 다양한 세트로 수행해 보는 것도 좋습니다.
input_tensor, target_tensor, inp_lang, targ_lang =
load_dataset('..\chap10\data\spa.txt', num_examples)
max_length_targ, max_length_inp = max_length(target_tensor), max_length(input_tensor) ------ 대상 텐서의 최대 길이(max_length) 계산
input_tensor_train, input_tensor_val, target_tensor_train, target_tensor_val =
train_test_split(input_tensor, target_tensor, test_size=0.2) ------ 8:2 비율로 훈련과 검증
여기까지 데이터셋에 대한 사전 준비가 끝났습니다.
이제 데이터 분석을 준비하기에 앞서 하이퍼파라미터들을 정의합니다.
코드 10-30 하이퍼파라미터 초기화
BUFFER_SIZE = len(input_tensor_train)
BATCH_SIZE = 64
steps_per_epoch = len(input_tensor_train) // BATCH_SIZE
embedding_dim = 256
units = 1024
vocab_inp_size = len(inp_lang.word_index) + 1
vocab_tar_size = len(targ_lang.word_index) + 1
dataset = tf.data.Dataset.from_tensor_slices((input_tensor_train, target_tensor_huffle(BUFFER_SIZE) ------ 데이터 분석을 위한 데이터셋 분리
dataset = dataset.batch(BATCH_SIZE, drop_remainder=True)
4 코드에서 spa.txt 데이터셋은 http://storage.googleapis.com/download.tensorflow.org/data/spa-eng.zip에서 제공하는 데이터셋입니다.