시작하기무료로 시작하기

모델 학습하기

2017년에 Google Translate가 하루에 5억 명이 넘는 사용자에게 서비스를 제공했다는 사실을 알고 계셨나요?

여기서는 첫 번째 Teacher Forcing 모델을 학습해 보겠습니다. Teacher Forcing은 시퀀스-투-시퀀스 모델(예: 신경 기계 번역기)에서 성능을 높이기 위해 흔히 사용돼요.

sents2seqs() 함수, 영어 문장 en_text, 프랑스어 문장 fr_text가 제공됩니다.

이 연습은 강의의 일부입니다

Keras로 배우는 Machine Translation

강의 보기

연습 안내

  • 프랑스어 단어의 원-핫 인코딩 시퀀스에서(각 시퀀스의 마지막 단어를 제외한) 디코더 입력을 구하세요.
  • 프랑스어 단어의 원-핫 인코딩 시퀀스에서(각 시퀀스의 첫 단어를 제외한) 디코더 출력을 구하세요.
  • 단일 배치 데이터로 모델을 학습하세요.
  • 학습 데이터 en_x, de_x, de_y에 대한 평가 지표(손실과 정확도)를 얻으세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

n_epochs, bsize = 3, 250

for ei in range(n_epochs):
  for i in range(0,data_size,bsize):
    en_x = sents2seqs('source', en_text[i:i+bsize], onehot=True, reverse=True)
    de_xy = sents2seqs('target', fr_text[i:i+bsize], onehot=True)
    # Separate the decoder inputs from de_xy
    de_x = ____[:,____,:]
    # Separate the decoder outputs from de_xy
    de_y = ____[____]
    # Train the model on a single batch of data    
    nmt_tf.____([____,____], ____)    
    # Obtain the eval metrics for the training data
    res = _____.evaluate([____,____], ____, batch_size=bsize, verbose=0)
    print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))  
코드 편집 및 실행