РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pytfSpSqMk 65 of 89 menu
◀ ▶

Маска шагов в TensorFlow

В одной партии последовательности часто разной длины. Короткие дополняют нулями до общей длины, но эти шаги не должны влиять на расчёт. Маска отмечает, какие шаги настоящие, а какие служат только выравниванием.

Класс Masking сравнивает значения шага с заданным числом заполнителя. Совпадение помечает шаг как пропускаемый. Маска передаётся дальше по цепочке слоям, которые умеют её учитывать.

Подадим строку, где хвост из нулей, и выведем маску шагов:

import tensorflow as tf batch = tf.constant([[[1.0], [2.0], [0.0], [0.0]]], dtype=tf.float32) layer = tf.keras.layers.Masking(mask_value=0.0) y = layer(batch) print(y._keras_mask) # выведет [[ True True False False]]

Если после маски стоит рекуррентный блок, хвост из нулей не меняет итог: две цепочки с одинаковым началом и разным числом нулей в конце дают один и тот же ответ:

import tensorflow as tf tf.keras.utils.set_random_seed(0) short = tf.constant([[[1.0], [2.0], [3.0], [0.0], [0.0]]], dtype=tf.float32) long = tf.constant([[[1.0], [2.0], [3.0], [0.0], [0.0], [0.0], [0.0]]], dtype=tf.float32) model = tf.keras.Sequential([ tf.keras.layers.Masking(mask_value=0.0), tf.keras.layers.LSTM(3), ]) print(model(short).numpy()) print(model(long).numpy())

Соберите пару шагов [4.0, 0.0, 0.0] с одним признаком в партии из одной строки. Узнайте, какие шаги маска считает действительными.

Задайте две строки одинаковых четырёх шагов, где последние два шага - нули. Сравните сводку рекуррентного блока после слоя заполнителя для короткой и удлинённой версии второй строки.

Создайте вход формы (2, 6, 1), где в каждой строке первые три числа ненулевые, а остальные - нули. Выведите маску шагов после слоя с заполнителем 0.0.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить