인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)

실습 - Transformer 번역기 분석 - Part1

강사님 Tensorflow 실습코드 중 궁금한 점이 있습니다.

작성

·

27

0

# 훈련 데이터셋에서 포르투갈어 및 영어 예제 출력
for pt_examples, en_examples in train_examples.batch(3).take(1):
  print('> 포르투갈어 예제:')
  for pt in pt_examples.numpy():
    print(pt.decode('utf-8'))  # 포르투갈어 문장 디코딩하여 출력
  print()

  print('> 영어 예제:')
  for en in en_examples.numpy():
    print(en.decode('utf-8'))  # 영어 문장 디코딩하여 출력

=====> 위의 코드에 pt 와 en 이 어떻게 생성된 변수인지 잘 이해가 안 가서 여쭤봅니다.

답변 1

0

YoungJea Oh님의 프로필 이미지
YoungJea Oh
지식공유자

train_examples는 포르투갈어와 영어 문장 쌍으로 구성된 데이터셋입니다. 이 데이터셋은 TensorFlow의 tf.data.Dataset API를 사용하여 준비된 것이고 (포르투갈어 문장, 영어 문장) 형태로 구성된 튜플의 형식을 가집니다.
train_examples.batch(3)는 데이터셋을 배치 3개 단위로 나누는 작업을 수행합니다. 즉, 데이터셋을 3개의 문장씩 묶어 배치로 만듭니다. 따라서, pt_examples와 en_examples는 각각 포르투갈어와 영어 문장 3개로 이루어진 배치입니다. take(1)는 배치 1개 가져옵니다.

이렇게 하면 pt_examples.numpy() 와 en_examples.numpy() 에는 예를 들어 다음과 같은 데이터가 들어있게 됩니다.
pt_examples.numpy(): ['Bom dia', 'Como você está?', 'Obrigado']
en_examples.numpy(): ['Good morning', 'How are you?', 'Thank you']

이 list 들을 for 문으로 읽으면 포르투갈어, 영어 한 문장씩이 읽히게 됩니다.
감사합니다.

 

 

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기