Bắt đầu ngayBắt đầu miễn phí

Phần 2: Săn kho báu

Giờ trò săn kho báu có thêm chút thử thách. Bạn quên mang laptop và chỉ có một thiết bị với bộ nhớ hạn chế. Mã bạn viết phải ít hơn 4 dòng (không tính phần chú thích). Vì cần viết ngắn gọn nhất có thể, bạn sẽ dùng list comprehension.

List comprehension là cách tuyệt vời để lặp qua dữ liệu chỉ với một dòng mã. Ví dụ, nếu bạn muốn lấy tất cả số chẵn từ một danh sách số, bạn có thể dùng [n for n in range(100) if n%2==0]. Như bạn thấy, list comprehension cho phép bạn kết hợp vòng lặp for và câu lệnh if trong một dòng.

Bài tập này là một phần của khóa học

Machine Translation với Keras

Xem khóa học

Hướng dẫn bài tập

  • Lấy các ID từ cho các vector onehot trong treasure_map.
  • Lấy kích thước batch (chiều đầu tiên) của bản đồ kho báu và dùng nó để tạo vòng lặp for.
  • Lấy các từ của câu thứ i bằng cách lặp qua hàng thứ i của word_ids đồng thời bỏ qua các ID từ bằng không.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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))
Chỉnh sửa và Chạy Mã