НачатьНачать бесплатно

Часть 2: Поиск сокровища

Теперь в поиске сокровища появляется небольшое усложнение. Вы забыли взять ноутбук и у вас есть только устройство с ограниченным объёмом памяти. Написанный вами код должен занимать не более 4 строк (без учёта комментариев). Чтобы сделать код максимально компактным, вы будете использовать списковые включения.

Списковые включения — отличный способ перебирать данные в одну строку кода. Например, чтобы получить все чётные числа из списка, можно написать [n for n in range(100) if n%2==0]. Как видите, списковые включения позволяют объединить цикл for и условие if в одной строке.

Это упражнение является частью курса

Машинный перевод с Keras

Посмотреть курс

Инструкции к упражнению

  • Получите идентификаторы слов для векторов унитарного кодирования в treasure_map.
  • Определите размер батча (самое первое измерение) карты сокровищ и используйте его для создания цикла for.
  • Получите слова i-й последовательности, перебирая i-ю строку word_ids, игнорируя идентификаторы слов, равные нулю.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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))
Редактировать и запускать код