KerasRS / API 文档 / Embedding 层 / EmbedReduce 层

EmbedReduce 层

[源代码]

EmbedReduce

keras_rs.layers.EmbedReduce(
    input_dim: int,
    output_dim: int,
    embeddings_initializer: Union[
        str,
        keras.src.initializers.initializer.Initializer,
        type[keras.src.initializers.initializer.Initializer],
        Callable[[Sequence[int | None], str], Any],
        Any,
    ] = "uniform",
    embeddings_regularizer: Union[
        str,
        keras.src.regularizers.regularizers.Regularizer,
        type[keras.src.regularizers.regularizers.Regularizer],
        Callable[[Any], Any],
        NoneType,
    ] = None,
    embeddings_constraint: Union[
        str,
        keras.src.constraints.constraints.Constraint,
        type[keras.src.constraints.constraints.Constraint],
        Callable[[Any], Any],
        NoneType,
    ] = None,
    mask_zero: bool = False,
    weights: Any = None,
    combiner: str = "mean",
    **kwargs: Any
)

一个使用组合器进行归约的嵌入层。

此层嵌入输入,然后应用归约将一组嵌入组合成单个嵌入。这通常用于将项目序列嵌入为单个嵌入。

如果传递给 __call__ 的输入是 1D 的,则不应用归约。如果输入是 2D 的,则使用组合器归约维度 1,使结果的形状为 (batch_size, output_dim)。不允许输入秩为 3 或更高。可以选择将权重传递给 __call__ 方法,以便在归约之前对不同的样本应用权重。

此层支持稀疏输入和支持它们的后端提供的可变长度(ragged)输入。归约后的输出是稠密的。对于可变长度输入,可变长度维度必须是 1,因为它是被归约的维度。

参数

  • input_dim: 整型。词汇表的大小,即最大整数索引 + 1。
  • output_dim:整数。稠密嵌入的维度。
  • embeddings_initializerembeddings 矩阵的初始化器(参见 keras.initializers)。
  • embeddings_regularizer:应用于 embeddings 矩阵的正则化函数(参见 keras.regularizers)。
  • embeddings_constraint:应用于 embeddings 矩阵的约束函数(参见 keras.constraints)。
  • mask_zero: 布尔值,输入值 0 是否是一个特殊的“填充”值,应该被掩码(mask)掉。当使用可能接受可变长度输入的循环层时,这很有用。如果设置为 True,那么模型中所有后续层都需要支持掩码,否则将引发异常。如果 mask_zero 设置为 True,作为结果,词汇表中不能使用索引 0(input_dim 应等于词汇表大小 + 1)。
  • weights: 可选的浮点矩阵,大小为 (input_dim, output_dim)。初始嵌入值。
  • combiner: 指定如何对单行中的多个条目进行归约。当前支持 meansqrtnsummean 是默认值。sqrtn 通常能获得良好的准确性,尤其是在词袋模型(bag-of-words)的列中。
  • **kwargs: 传递给 Embedding 的其他关键字参数。

[源代码]

call 方法

EmbedReduce.call(inputs: Any, weights: Optional[Any] = None)

应用嵌入和归约。

参数

  • inputs: 要嵌入的 1D 张量,或要嵌入和归约的 2D 张量。
  • weights: 可选的权重张量,在归约前应用,可以是 1D 或 2D,并且必须匹配 inputs 的第一个维度(1D 情况)或匹配 inputs 的形状(2D 情况)。

返回

形状为 (batch_size, output_dim) 的稠密 2D 张量。