ReversibleEmbedding 类keras_hub.layers.ReversibleEmbedding(
input_dim,
output_dim,
tie_weights=True,
embeddings_initializer="uniform",
embeddings_regularizer=None,
embeddings_constraint=None,
mask_zero=False,
reverse_dtype=None,
logit_soft_cap=None,
**kwargs
)
一种可以向后投影到输入维度的嵌入层。
该层是 keras.layers.Embedding 的语言模型扩展。此层可以通过设置 reverse=True 来 "反向" 调用,在这种情况下,该层将从 output_dim 进行线性投影,回到 input_dim。
默认情况下,反向投影将使用 embeddings 权重的转置来投影到 input_dim(权重是 "绑定的")。如果设置 tie_weights=False,则模型将使用一个独立的、可训练的变量进行反向投影。
该层没有偏置项。
参数
reverse 投影矩阵是否共享相同的权重。embeddings 矩阵的初始化器(参见 keras.initializers)。embeddings 矩阵的正则化函数(参见 keras.regularizers)。embeddings 矩阵的约束函数(参见 keras.constraints)。compute_dtype。logit_soft_cap 并且 reverse=True,则输出 logits 将通过 tanh(logits / logit_soft_cap) * logit_soft_cap 进行缩放。这会缩小输出 logits 的范围,并可以提高训练效果。keras.layers.Embedding 的其他关键字参数,包括 name、trainable、dtype 等。调用参数
True,该层将执行从 output_dim 到 input_dim 的线性投影,而不是常规的嵌入调用。默认为 False。示例
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))
embedding = keras_hub.layers.ReversibleEmbedding(vocab_size, hidden_dim)
# Embed tokens to shape `(batch_size, seq_length, hidden_dim)`.
hidden_states = embedding(token_ids)
# Project hidden states to shape `(batch_size, seq_length, vocab_size)`.
logits = embedding(hidden_states, reverse=True)
参考文献