ПочатиПочніть безкоштовно

Частина 2: Полювання за скарбами

Тепер у нашому полюванні за скарбами невеликий поворот. Ви забули свій ноутбук і маєте з собою лише пристрій з обмеженою пам'яттю. Код, який ви напишете, має містити менше ніж 4 рядки (не враховуючи коментарів). Оскільки потрібно зробити код максимально компактним, ви скористаєтеся списковими включеннями.

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

Ця вправа є частиною курсу

Machine Translation з Keras

Переглянути курс

Інструкції до вправи

  • Отримайте ідентифікатори слів для one-hot векторів у treasure_map.
  • Отримайте розмір batch (найпершу розмірність) карти скарбів і використайте його, щоб створити цикл 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))
Редагувати та запускати код