MaskedLMHead
類別keras_hub.layers.MaskedLMHead(
vocabulary_size=None,
token_embedding=None,
intermediate_activation="relu",
activation=None,
layer_norm_epsilon=1e-05,
kernel_initializer="glorot_uniform",
bias_initializer="zeros",
**kwargs
)
遮罩語言模型 (MaskedLM) 頭部。
此層接受兩個輸入
inputs
:應為編碼詞符的張量,形狀為 (batch_size, sequence_length, hidden_dim)
。mask_positions
:應為要預測的整數位置張量,形狀為 (batch_size, masks_per_sequence)
。詞符編碼通常應為編碼器模型的最後輸出,而遮罩位置應為您想要為 MaskedLM 任務預測的整數位置。
此層將首先收集遮罩位置的詞符編碼。這些收集的詞符將通過與編碼維度相同大小的密集層,然後轉換為與輸入詞彙表相同大小的預測。此層將產生單個輸出,形狀為 (batch_size, masks_per_sequence, vocabulary_size)
,可用於計算 MaskedLM 損失函數。
此層通常與 keras_hub.layers.MaskedLMMaskGenerator
配對使用,後者將有助於為 MaskedLM 任務準備輸入。
參數
keras_hub.layers.ReversibleEmbedding
實例。如果傳遞,此層將用於將模型的 hidden_dim
投影到輸出 vocabulary_size
。None
(返回 logits)或 "softmax"
(返回機率)。1e-5
。keras.initializers
初始化器。用於密集層和多頭注意力層的核心初始化器。預設為 "glorot_uniform"
。keras.initializers
初始化器。用於密集層和多頭注意力層的偏差初始化器。預設為 "zeros"
。keras.layers.Layer
的其他關鍵字參數,包括 name
、trainable
、dtype
等。範例
batch_size = 16
vocab_size = 100
hidden_dim = 32
seq_length = 50
# Generate random inputs.
token_ids = np.random.randint(vocab_size, size=(batch_size, seq_length))
# Choose random positions as the masked inputs.
mask_positions = np.random.randint(seq_length, size=(batch_size, 5))
# Embed tokens in a `hidden_dim` feature space.
token_embedding = keras_hub.layers.ReversibleEmbedding(
vocab_size,
hidden_dim,
)
hidden_states = token_embedding(token_ids)
preds = keras_hub.layers.MaskedLMHead(
vocabulary_size=vocab_size,
token_embedding=token_embedding,
activation="softmax",
)(hidden_states, mask_positions)
參考文獻