View source on GitHub |
Masks a sequence by using a mask value to skip timesteps.
tf.keras.layers.Masking( mask_value=0.0, **kwargs )
For each timestep in the input tensor (dimension #1 in the tensor), if all values in the input tensor at that timestep are equal to mask_value
, then the timestep will be masked (skipped) in all downstream layers (as long as they support masking).
If any downstream layer does not support masking yet receives such an input mask, an exception will be raised.
Consider a Numpy data array x
of shape (samples, timesteps, features)
, to be fed to an LSTM layer. You want to mask timestep #3 and #5 because you lack data for these timesteps. You can:
x[:, 3, :] = 0.
and x[:, 5, :] = 0.
Masking
layer with mask_value=0.
before the LSTM layer: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.
See the masking and padding guide for more details.
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/layers/Masking