Masking
類別tf_keras.layers.Masking(mask_value=0.0, **kwargs)
使用遮罩值來跳過時間步,藉此遮罩序列。
對於輸入張量中的每個時間步(張量中的維度 #1),如果該時間步中輸入張量的所有值都等於 mask_value
,則該時間步將在所有下游層中被遮罩(跳過)(只要它們支持遮罩)。
如果任何下游層不支持遮罩,但仍然收到這樣的輸入遮罩,將會拋出例外。
範例
考慮一個形狀為 (樣本數, 時間步數, 特徵數)
的 NumPy 資料陣列 x
,將其饋送到 LSTM 層。您想遮罩時間步 #3 和 #5,因為您缺乏這些時間步的數據。您可以
x[:, 3, :] = 0.
和 x[:, 5, :] = 0.
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.
請參閱遮罩和填充指南以了解更多詳細資訊。