시작하기무료로 시작하기

Part 2: 보물 찾기

보물 찾기에 작은 변수가 생겼어요. 노트북을 챙기지 못했고, 메모리가 제한된 기기만 가지고 있네요. 작성하는 코드는 주석을 제외하고 4줄 이하여야 해요. 코드를 최대한 간결하게 만들기 위해 리스트 컴프리헨션을 사용하겠습니다.

리스트 컴프리헨션은 한 줄로 데이터를 순회하기에 아주 좋아요. 예를 들어, 숫자 리스트에서 짝수만 얻고 싶다면 [n for n in range(100) if n%2==0]처럼 할 수 있어요. 보시다시피 리스트 컴프리헨션을 사용하면 for 루프와 if 문을 한 줄로 결합할 수 있어요.

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

Keras로 배우는 Machine Translation

강의 보기

연습 안내

  • treasure_map의 원-핫 인코딩 벡터에서 단어 ID를 가져오세요.
  • treasure map의 배치 크기(가장 첫 번째 차원)를 구하고, 이를 사용해 for 루프를 만드세요.
  • word_ids의 i번째 행을 순회하면서, 0과 같은 단어 ID는 무시하고 i번째 문장의 단어들을 얻으세요.

실습형 인터랙티브 연습

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

# Get the word IDs from the treasure map
word_ids = np.argmax(____, axis=-1)
# Get the batch size from the treasure map
for i in range(treasure_map.shape[____]):
  	# Get all the words of the i-th sentence using list comprehension
	words = [index2word[____] for wid in word_ids[____] if wid != ____]
	print("Instruction ", i+1, ": ", ' '.join(words))
코드 편집 및 실행