Если вы читаете о слое Masking , он также будет поддерживать то, что после того, как вы использовали маску в начале, все остальные слои получат маску автоматически.
Цитата:
Для каждого временного шага во входном тензоре (измерение # 1 в тензоре), если все значения во входном тензоре на этом временном шаге равны mask_value, тогда временной шаг будет замаскирован (пропущен) в все нижестоящие слои (если они поддерживают маскирование).
Если какой-либо нижестоящий слой не поддерживает маскирование, но получает такую входную маску, будет сгенерировано исключение.
This другая ссылка также утверждает то же самое. Маска будет распространена на все слои.
Цитата:
При использовании Функционального API или Последовательного API маска, сгенерированная уровнем внедрения или маскирования, будет распространяться по сети для любого уровня, который может использовать их (например, слои RNN). Keras автоматически извлечет маску, соответствующую входу, и передаст ее любому слою, который знает, как его использовать.
Вторая ссылка действительно полна деталей по маскировке.
Примечание что код, который вы показали, предназначен для встраивания custom . Если научит вас «создавать и передавать» маску, если вы хотите создать слой, который будет создавать маску. Это в основном показывает, что делает обычный слой Embedded.
Итак, мы можем заключить, что если вы используете обычный Embedding
слой, все, что вам нужно, это mask_zero=True
, и все будет go вниз по течению.