Keras 2 API 文档 / 层 API / 核心层 / 掩码层

掩码层

[源代码]

Masking

tf_keras.layers.Masking(mask_value=0.0, **kwargs)

通过使用掩码值跳过时间步来掩码序列。

对于输入张量(张量中的维度 #1)中的每个时间步,如果该时间步的输入张量中的所有值都等于mask_value,则该时间步将在所有下游层中被掩码(跳过)(只要它们支持掩码)。

如果任何下游层不支持掩码但仍接收此类输入掩码,则会引发异常。

示例

考虑一个形状为(样本数, 时间步数, 特征数)的 Numpy 数据数组x,要馈送到 LSTM 层。您希望掩码时间步 #3 和 #5,因为您缺少这些时间步的数据。您可以

  • 设置x[:, 3, :] = 0.x[:, 5, :] = 0.
  • 在 LSTM 层之前插入一个Masking层,并设置mask_value=0.
samples, timesteps, features = 32, 10, 8
inputs = np.random.random([samples, timesteps, features]).astype(np.float32)
inputs[:, 3, :] = 0.
inputs[:, 5, :] = 0.

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Masking(mask_value=0.,
                                  input_shape=(timesteps, features)))
model.add(tf.keras.layers.LSTM(32))

output = model(inputs)
# The time step 3 and 5 will be skipped from LSTM calculation.

有关更多详细信息,请参阅掩码和填充指南